piątek, 3 lutego 2012

[ARM] EXTI

Już przy pierwszym zetknięciu się z procesorami ARM uprzedzano mnie, że wiele nerwów mnie i mojemu otoczeniu napsują zegary peryferiów i ich konfiguracja. O ile przy normalnych portach IO włączamy sobie zegarek do odpowiadającego GPIO, przy transmisji przez USART włączamy sobie zegarek od USART, przy wykorzystaniu timerów włączamy sobie zegarek do odpowiadającego TIM (itd), o tyle w ogóle nieintuicyjny jest problem z przerwaniami zewnętrznymi.
Każdy normalnie sobie pomyśli, konfigurujemy GPIO(sterownik portów IO), NVIC (sterownik przerwań) i wreszcie konfigurujemy EXTI (sterownik przerwań z portów IO). Po tym oczywiście tylko obsługa przerwań w Handlerach (np. EXTI0_IRQHandler() ). Wszystko? A nie! A właśnie, że nie!
Pozostaje jeszcze do włączenia super zegar (AFIO - zegar alternatywnych funkcji IO ) podpięty do magistrali APB2. Kurdę, nie można było go nazwać jakoś inaczej?
Poza tym drobnym, zniechęcającym akcentem... przerwania są słodziutkie :D

Brak komentarzy:

Prześlij komentarz