zezwolenie na przerwanie od timer'a 0 powoduje wykonanie przerwania?
Donton - 15-08-2006 19:33
zezwolenie na przerwanie od timer'a 0 powoduje wykonanie przerwania? 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?
--
Donton
dziadek Ben - 15-08-2006 19:33
> czy da sie to jakos ominac, aby przerwanie od timera 0
> wykonalo sie dopiero w momencie jego przepelnienia?
Przed włączeniem zezwolenia skasuj przerwanie, zerując znacznik TF0
(TCON.5).
--
dziadek Ben
[z adresu wytnij co trzeba]
Konop - 15-08-2006 19:33
> 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 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
zanotowane.pldoc.pisz.plpdf.pisz.plkonstruktor.keep.pl