Hi,
mein sam9 hat ein problem mit mir. ich will auf normalen I/O pin mit
einem FIQ reagieren, er nicht. statt dessen ballert er mir non-stop
FIQ's um die ohren. kaum ist er fertig, steht schon der nächste an. ich
vermute ich habe irgendwas nicht korrekt zurückgesetzt. blöderweise
komme ich nicht drauf.
ich poste mal meinen handler code und hoffe auf einen tipp
1 | void fast_handler() __attribute__((interrupt("FIQ")));
|
2 | void fast_handler()
|
3 | {
|
4 | volatile UDWORD pio_isr = AT91F_PIO_GetInterruptStatus(AT91C_BASE_PIOC);
|
5 | volatile UDWORD pio_pdsr = AT91F_PIO_GetInput(AT91C_BASE_PIOC);
|
6 |
|
7 | AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_FIQ);
|
8 | AT91C_BASE_AIC->AIC_EOICR = 1;
|
9 | }
|
das ganze problem existiert nur, weil ich auf zwei pins mit einem FIQ
reagieren muss. daher hilft es mir nicht, wenn ich nur auf den FIQ pin
reagiere (was aber gut klappt).
danke!
RiRaRutsch