logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Prioritet przerwań w AVR. Czy da się to zmienić?

kozak_sc 22 Lut 2005 19:32 1242 6
REKLAMA
  • #1 1255557
    kozak_sc
    Poziom 23  
    Posty: 752
    Pomógł: 25
    Ocena: 117
    witam
    czy da sie w jakis sposob zmienic prioriet przerwan w procku avr. konkretnie chodzi mi o to zeby przerwanie od timer0 moglo przerwac INT0. da sie to jakos zrobic ?? (procek Tiny15)
  • REKLAMA
  • #2 1255587
    pioszc
    Poziom 12  
    Posty: 72
    Pomógł: 1
    Ocena: 1
    no pytanie do specjalistów.
    ja słyszałem że kolejne przerwanie jest wykonywane dopiero po opuszczeniu flagi poprzedniego- i nie inaczej
    myśle że jak zabardzo nierozbudowuje się obsługi przerwania
    to priorytet ma mniejsze znaczenie.

    to tylko tyle wiem
  • REKLAMA
  • Pomocny post
    #3 1255645
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    Procesor gdy wchodzi do przerwania zeruje flage globalnego zezwolenia na przerwania I. Jezeli chcesz zeby inne przerwanie moglo byc wykonane w trakcie wykonywania innego wystarczy ze na poczatku wykonywanego przerwania sam recznie ustawisz flage I. W ten sposob mozesz sobie zmniejszyc priorytet niektorych przerwan pozwalajac innym na dzialanie.
    Pozdro
    Dexter
  • REKLAMA
  • #4 1255709
    kozak_sc
    Poziom 23  
    Posty: 752
    Pomógł: 25
    Ocena: 117
    dzieki dexterze.


    pioszc napisał:

    myśle że jak zabardzo nierozbudowuje się obsługi przerwania
    to priorytet ma mniejsze znaczenie.


    co ma wspolnego stopien skaplikowania podprogramu przerwania do prioritetu to nie wiem.
  • REKLAMA
  • #5 1255824
    pioszc
    Poziom 12  
    Posty: 72
    Pomógł: 1
    Ocena: 1
    nie pomyślałem o wyzerowaniu flagi
    co ma wspólnego -to że jeżeli w przerwaniu wykonuje się np.obliczenia to
    są to cykle które są opóżnieniem.
  • #7 1261832
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 160
    Witam,
    priorytet przerwań w avr jest stały i nie da sie go zmienić.
    Pozdr. N.

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono kwestię zmiany priorytetu przerwań w mikrokontrolerze AVR, konkretnie w modelu Tiny15. Użytkownik pytał, czy przerwanie od Timer0 może przerwać przerwanie INT0. Odpowiedzi wskazują, że priorytet przerwań w AVR jest stały i nie można go zmienić sprzętowo. Podczas obsługi przerwania flaga globalnego zezwolenia na przerwania (I) jest zerowana, co blokuje inne przerwania. Jednak możliwe jest ręczne ustawienie tej flagi wewnątrz procedury obsługi przerwania, co pozwala na "wgniecenie" przerwania o niższym priorytecie przez inne przerwanie, efektywnie zmniejszając priorytet niektórych przerwań. Dyskusja podkreśla, że stopień skomplikowania obsługi przerwania wpływa na opóźnienia, ale nie na priorytet sam w sobie.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA