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
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