[AVR] Ustawianie priorytetu przerwań

Oct 20, 2005 2 Replies

Gdzie się ustawia priorytety przerwań w AVR'ach (coś na wzór rejestru IP w 8051) ? Potrzebuję, by Timer2 i Timer1 miał priorytet przed Timer0.



K.



W procedurze obsługi przerwań.

AVR wchodząc w obsługę przerwania blokuje wszystkie inne. Czyli na początku odblokuj przerwania które mają być obsłużone.

W twoim przypadku:

(zakładam że używasz tylko przerwań Timerów) W procedurce obsługi Timer0 na samym początku robisz SEI W pozostałych przerwaniach nie robisz nic. Timer1 i Timer2 są równorzędne, żadne żadnego nie przerwie.

Krzysztof snipped-for-privacy@wp.pl napisał(a):

Proponuję zajrzeć do dokumentacji uC.AVR-y nie posiadają rejestru priorytetów ,jak 51-ki.Dowolne przrwanie blokuje wykonywanie się innych przerwań.Priorytet występuje tylko w przypadku jednoczesnego zgłoszenia kilku przerwań , wtedy to przerwanie o najniższym adresie wektora , będzie wykonane jako 1-sze.Aby osiągnąć cel o którym wspomniałeś , powinieneś "zrobić to" programowo.

Piotrek

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required