[En-Nut-Discussion] Hanging Interrupts on PIO
apcom at tlen.pl
Sat May 1 11:52:02 CEST 2010
> A slight anomaly I noticed was that another pin is also registering an interrupt in the ISR.
> In this case, PB3 - the TX pin of the Ethernet. This is odd, since i haven't enabled the IER
> for that pin and neither am I using the Ethernet port. Checking PIOB_IMR before and after the
> interrupts hang shows that the pin isn't enabled as an interrupt either.
PIO_ISR have 1 when "At least one Input Change has been detected on the I/O line since
PIO_ISR was last read or since reset." Nothing else. If you don't set PIO_IMR pio controller
don't generate any interrupt.
> Any clues on whats happening?
I have similar problem with pio interrupt. When I put many, fast impulses on PIO after
some time (minutes, hours) interrupt routine isn't fired. Simply because PIO_ISR
is set and not readed. This problems is when I leave default interupt mode - Positive
edge triggered. I don't know why but I lost positive edge and all pio interrupt hang.
A try many tricks and spend many hours on it. I start thinking that PIO Controler is
buggy. Last time I set mode to level sensitive. Interrupt routine will be called until you
clear PIO_ISR. Looks better on desk, but I don't check this in production
environment. In 2 weeks I will know more.
More information about the En-Nut-Discussion