Rutina pro pipnutí

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
lounge
Příspěvky: 21
Registrován: 08 kvě 2011, 02:00
Bydliště: Morava

Rutina pro pipnutí

#1 Příspěvek od lounge »

Hledám rutinu pro krátkodobé pípnutí u 16F628A. Na netu jsem nenašel nic přijatelného.
Díky!! :lol:

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#2 Příspěvek od mikollar »

to si napisal trosku malo informacii nie?

Mozu byt vyzuite prerusenia alebo nemozu, aka dlzka piponutia atd..

Uživatelský avatar
lounge
Příspěvky: 21
Registrován: 08 kvě 2011, 02:00
Bydliště: Morava

#3 Příspěvek od lounge »

Potřebuji jen pípnutí cca 100 ms po stisku tlacitka. Jestli pod přerušením nebo jinak je mně jedno,jenom ne moc složité,nemám moc paměti.Stacil by mně náznak ve zdrojáku.

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#4 Příspěvek od mikollar »

bez preruseni je najjednoducjsie vytvorit cyklus

napr vlozis do regitra cislo a od neho odcitas pokial nie je nula v cykle len prepina vystup.

nejak tak

Kód: Vybrat vše

MOVLW .100
MOVWF CNT

LOOP          DECFSZ CNT,F
                   GOTO NEXT
                   GOTO END
NEXT          BSF   PORTB.0
                  NOP
                  NOP
                  NOP
                  NOP
                  BCF   PORTB.0
                  GOTO LOOP

END

snad som to napisal dobre

Pre 100ms podla frekvencie picky bude treba zvysit pocet cyklov

Uživatelský avatar
lounge
Příspěvky: 21
Registrován: 08 kvě 2011, 02:00
Bydliště: Morava

#5 Příspěvek od lounge »

Aha,tak přece jen jsem se měl více rozepsat.Nejde mně o vytvoření impulsu, ale generování frekvence cca 2kHz po dobu 100 ms pro buzení piezoelementu.

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#6 Příspěvek od mikollar »

na to bude najvhodnesie prerusenie napr od TMR0, kde sa da pekne zadefinovat cas
Jenoduchy kalkulator
http://eng-serve.com/pic/pic_timer.html

registre
OPTION_REG
INTCON

Prerusenie nastavit na 4kHz, kazdym prerusenim zmenit stav pinu na opacny. Dlzku pipnutia urcuje pocet vykonanych preruseni krat perioda preruseni.

Teraz mam toho viac tak najskor zajra vecer mozem nieco spisat

Uživatelský avatar
lounge
Příspěvky: 21
Registrován: 08 kvě 2011, 02:00
Bydliště: Morava

#7 Příspěvek od lounge »

Rád si počkám, díky za pomoc.

Jirka
Příspěvky: 2031
Registrován: 01 črc 2005, 02:00
Bydliště: zbídačený kraj
Kontaktovat uživatele:

#8 Příspěvek od Jirka »

Tady http://doveda.byl.cz/konstrukce/aku_usb/index.htm je dole zdroják v asm, kde používá pípání. Okoukni to, třeba na to přijdeš a naprogramuješ sám.
*****

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#9 Příspěvek od mikollar »

Snad su casy dobre, v simulatore to slo. INT OSC 4MHz
Přílohy
pip.asm
(1.96 KiB) Staženo 127 x

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#10 Příspěvek od nekmil »

A nebylo by jednodušší než generovat kmitočet. Použít toto:
http://www.gme.cz/piezosirenky-do-dps/k ... 023/#popis
V programu nastavit na výstupním pinu H počkat 100ms a pak nastavit L.
Když už máš "málo paměti".

Uživatelský avatar
lounge
Příspěvky: 21
Registrován: 08 kvě 2011, 02:00
Bydliště: Morava

#11 Příspěvek od lounge »

Moc díky, z těchto nápadů si určitě vyberu a zrealizuji.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“