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

[Atmega8][C] przerwanie Timera2, podczas oblugi przer. zew.

przemek610 07 Gru 2009 23:27 1041 1
REKLAMA
  • #1 7359849
    przemek610
    Poziom 11  
    Otóż zliczam czas na timerze 2 i co 1 sekundę generuje mi przerwanie obsługiwane w procedurze signal. Jednak gdy jestem w menu które wywoływane jest za pomocą przerwania: ISR_BLOCK, czas nie jest liczony. Jak zrobić by priorytet przerwania Timera2 był większy niż przerwania zewnętrznego. Nie mogę ustawić ISR_NOBLOCK bo zapcham szybko stos.

    Czy w AVR jest jakiś priorytet przerwań przypisanych do peryferiów typu timer, przerwanie zew??

    czy takie rozwiązanie jest poprawnym:
    ISR_BLOCK wyłącza przerwania przez cli(), więc gdybym wyłączył w rejestrze przerwanie zewnętrzne, a potem włączył sei(), czyli wyłączył by przerwanie tylko na czas deaktywacji przerwania zewnętrznego, a potem uruchomiłbym przerwanie żeby móc zliczać czas. Czy takie coś ma prawo działać?

    Pozdrawiam
  • REKLAMA
REKLAMA