Prodleva pomoci TMR0
Martin Šaněk
sanek.martin@volny.cz
Neděle Červen 27 17:14:54 CEST 2004
NO asi nebudu ten pravy to vsechno vysvetlit :-((
TMR0 se inkrementuje pri kazdem instrukcnim cyklu. T.j. pri kazde
instrukci se zvetsi o 1.(je myslena jednoducha instrukce napr NOP)
Pri preteceni se vyvola interrupt. Cili pokud chci vyvolat preteceni,
tak si nastavim TMR0 na nejakou hodnotu (treba 00h) a po 256
instrukcich bude vyvolano preruseni. Pravdepodobne se da do tohoto
registru i zapisovat (nezkousel jsem to).
Preddelicka slouzi pouze k omezeni nacitani. Cili pokud nastavim
predelicku do 256 tak po kazdych 256 instrukcich se mi inkrementuje o
jednu TMR0.
Nasobit se tam pokud vim nic neda.
Pocitat jsem to nikdy nezkousel, pouze jsem v MPLABu nastavil hodnoty
a zkusil jake je zpozdeni (nikdy jsem to nepotreboval nijak presne).
Pri vetsich casech se musi samozrejme pouzit dalsi registr(y) k
odcitani.
K nastaveni OPTION pouzivam
movlw b'11000111' coz je predelicka na 256, inkrementace pri nabezne
hrane .
Pri provozu pouzivam podprogramy, ketre jsou volany z hlavniho
programu na zapnuti, nebo na vypnuti casovace:
INT_TMR0_on
banksel OPTION_REG
bsf OPTION_REG,0 ;nastaveni deliciho pomeru
bsf OPTION_REG,1 ; ---"---
bsf OPTION_REG,2 ; ---"---
bsf INTCON,5 ;povoleni interupt od TMR0
bcf OPTION_REG,5 ;povoleni TMR0
banksel TMR0
clrf TMR0
bcf f_timer ;nulovani priznaku
return
INT_TMR0_off
banksel OPTION_REG
bsf OPTION_REG,5
banksel TMR0
bcf f_timer ;nulovani priznaku
return
Snad Vam to pouze
Martin
Ahoj,
chci k jednomu ukonu pouzit TMR0 bez nutnosti dalsiho externiho krystalu,
jinak mam _XT_OSC, frekvence 4.000MHz. Takze jestli dobre chapu mel bych v
OPTIONu nastavit asi toto:
T0CS=0
T0SE=je jedno
PSA=0
PS2-PS0: nejaka delicka
Tak a ted bych potreboval poradit s tim, jak se spocita, v jakem casovem
intervalu se preruseni vzdy zavola. Chci se to naucit odvodit, mam frekvenci
krystalu, vim cas, ve kterem chci preruseni volat... Jak to mam nastavit?
Jakou vybrat preddelicku (vubec nemam poneti, jestli nasobit/delit atd.). Je
mi jasne ze minimalni a maximalni hodnota prodlevy jsou limitovany, s tim uz
bych si poradil pres citani nejake dalsi promene... Diky za pomoc.
Milan
Další informace o konferenci Hw-list