atmega i flaga int1

Loading thread data ...

pawel pisze:

Nie wiem, czy dobrze zrozumiałem... chodzi Ci o to, że w czasie, gdy przerwania są zablokowane, to naciśnięcie przycisku i tak ustawia flagę, tak?? Jeśli o to Ci chodzi - to niestety, nie da się tego obejść... to działa tak - rejestr MCUCR ustawia, kiedy przerwanie ma być zgłoszone, jak się pojawi odpowiednie kryterium (opadające zbocze) to jest ustawiana flaga w GIFR, a procek albo to "widzi" albo tego "nie widzi" (tzn. obsługuje albo nie) w zależności od flagi w GICR oraz flagi I w SREG... ale niestety, flaga jest ustawiona tak czy inaczej... i nie da się tego obejść... Jedyne rozwiązanie jest takie, że w miejscach, w których włączasz obsługę tego przerwania musisz wcześniej kasować flagę.. będzie to wyglądać chyba tak (chyba, bo praktycznie nie znam C, takich dziś szkolą inżynierów, studia zaczęte w 2004 roku, a z programowania miałem tylko Pascala i dla proców ASM, C-przez pół semestru :/... następne roczniki mają głównie C):

GIFR |= (1 << INTF1); GICR |= (1 << INT1);

No ale ta metoda działać będzie tylko jeśli używasz flagi przerwania "po bożemu", czyli do przerwania ;)... jeśli chcesz ją sprawdzać programowo, to niestety przy okazji musisz też sprawdzić stan flagi INT1 :/...

Pozdrawiam Konop

PS Tak jest ze wszystkimi przerwaniami :)...

Reply to
Konop

...

Niestety,tak ma być.

Kasować. Zwróć też uwage na drgania styków przycisku. Jeśli uruchomiona zostanie obsługa przerwania to drgania ustawią ponownie flagę i przerwanie może być wykonane wiele razy.

Pozdrawiam, Paweł

Reply to
invalid unparseable

Pawel pisze:

Już spieszę z wyjaśnieniem: Opis flagi INTF1, ostatnie zdanie: "This flag is always cleared when INT1 is configured as a level interrupt." Czyli jak wyzerujesz ISC11 przełączasz to przerwanie w tyb "low-LEVEL", a w tym trybie flaga INTF1 jest zawsze skasowana...

Pozdrawiam Konop

Reply to
Konop

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.