Przerwania w AVRze;

zalozmy, ze wywolalo sie dowolne przerwanie w AVRze; czy aby wywolalo sie dowolne inne przerwanie, (aby AVR przeszedl do obslugi innego przerwania) to przerwanie obecnie obslugiwane musi sie zakonczyc? (musi nastapic powrot z obslugi przerwania?)

Reply to
Q
Loading thread data ...

Tak. W momencie wejscia do obslugi przerwania gaszona jest flaga I. Tak samo jak zajbys programowo dal CLI. Aby oblsuga przerwania 1 mogla zostac przerwana przez przerwanie 2, nalezy w kodzie obslugi przerwania 1 wpisac komende SEI.

Reply to
Milosz Skowyra

Albo w przypadku kiedy przerwanie jest generowane zboczem dzieki istnieniu dodatkowych flag poszczegolnych przerwan zostanie ono wykonane zaraz po instrukcji reti aktualnego przerwania.

Reply to
T.M.F.

Nie chce mi sie teraz czytac papierow od calej rodziny AVR, ale afair to jesli podczas obslugi przerwania nadejda kolejne przerwania (liczba mnoga) to po reti zostanie wywolane kolejne ktore ma najnizszy numer, potem kolejne o wyzszym numerku. Oczywiscie piszac numerki mam na mysli rosnace kolejno adresy wektorow przerwan. Moge sie mylic, ale jesli chodzi o 2313, 8515, 8535 i 4344 to sadze ze mam 100% racje.

Reply to
Milosz Skowyra

Nie, wystarczy tylko wlaczyc przerwania rozkazem SEI.

Reply to
Adam Dybkowski

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.