[elektro] PIC18 számláló
Kiss Gabor
kissg at ssg.ki.iif.hu
Thu Jun 13 11:59:13 CEST 2013
On 06/13/2013 10:24 AM, Nemka wrote:
> Én így szoktam:
>
> - tiltsd le a timer megszakítást
> - olvasd ki a timer értékét
> - ellenőrizd a timer megszakítás flag-et
> -- ha a flag aktív, akkor ellenőrizd a timerből kiolvasott érték legfelső bitjét
> --- ha a legfelső bit 0, akkor növeld eggyel a szoftveres számlálódat és
> töröld a megszakítás flag-et
> - olvasd ki a szoftveres számlálódat
> - engedélyezd a timer megszakítást
Most már csak óvatosan merek megnyikkanni. :-)
Mi van, a következő hipotetikus esetben?
A számláló felső szavát inkrementáló IT rutin elindul. Már növelte is.
Épp készül törölni az Overflow bitet (TMR0IF), mikor beüt egy magasabb
prioritású interrupt, és elkezdi kiolvasni a számlálót a fentiek
szerint. Az IT rutinban tehát nem mindegy a sorrend.
Ha így csinálja, duplán inkrementálódik a felső szó.
Szóval vigyázni kell, sokkal több rossz megoldás van, mint jó. :-)
Jól meg kell vizsgálni a peremfeltételeket.
(Csak hangosan gondolkodom...)
g
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
More information about the Elektro
mailing list