pisze program w C dla at89c52. na starcie ustawiam brak zezwolenia dla przerwania od timera 0 (ET0=0) i w pewnym momencie programu wlaczam zezwolenie (ET0=1). wszystko bylo by po mojej mysli, gdyby nie to, ze w tym momencie wykonuje sie to przerwanie. czy tak musi byc, czy da sie to jakos ominac, aby przerwanie od timera 0 wykonalo sie dopiero w momencie jego przepelnienia?
zezwolenie na przerwanie od timer'a 0 powoduje wykonanie przerwania?
Aug 04, 2006
2 Replies
Przed w³±czeniem zezwolenia skasuj przerwanie, zeruj±c znacznik TF0 (TCON.5).
Zezwolenie na przerwanie nie ma nic wspólnego z prac± licznika. Licznik liczy od pocz±tku, przepe³nia siê, zg³asza przerwanie, ale to jest zablokowane. Procedura obs³ugi przerwania jest wiêc wykonywana w momencie zezwolenia na to przerwanie. Musisz skasowaæ flagê przerwania przed zezwoleniem na to przerwanie, albo zamiast blokowaæ i odblokowywaæ przerwanie - steruj prac± licznika. Nie wiem, jak ma dzia³aæ ten licznik, wiêc nie wiem, która opcja jest dla Ciebie lepsza - ale czujesz ró¿nicê??
Pozdrawiam Konop
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required