Witam
Załóżmy, że aktywujemy sobie przerwanie jeśli na INT1 będzie zbocze opadające
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz dołączymy sobie z książki projekt 7 (Rsa, który używa przerwań aby wysłać i odebrać dane)
i w przerwaniu zrobimy coś STRASZNEGO:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tutaj cały kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Niech mi ktoś wytłumaczy czy to ma prawo działać i w jaki sposób będzie to działało.
Z tego co wiem, na czas wykonywania się przerwania inne przerwania są blokowane?
Oraz jeśli pojawi się flaga przerwania program od razu skacze do funkcji obsługującej przerwanie.
Załóżmy, że na INT1 pojawia się stan niski.
W tym momencie program przechodzi do obsługi tego przerwania i:
1. blokuje inne przerwania
2.Zwiększa zmienną licznik
3.dodaje do buforu z uarta tą zmienną i włącza falgę przerwania
UCSRB |= (1<<UDRIE);4.Niestety są wyłączone inne przerwania, więc program nie skoczy NATYCHMIAST do
ISR( USART_UDRE_vect)5.Program zmienia stan na PD7
6.Wychodzi z przerwania i zezwala na inne przerwania
7.W tym momencie robiona jest obsługa przerwania ISR( USART_UDRE_vect)
Albo obsługa tego przerwania ISR( USART_UDRE_vect) nie zostanie w ogóle zrealizowana?
Czy dobrze myślę ?