Strange Interrupt leads to Abort Mode

I've got a unexpected problem with Interrupts.
Would be nice to discuss it.

I use Timer0 to have about 16000 fast interrupts (FIQ) per second.
There is a AD-Conversation and a few lines of long long int aritmetic to compute. Inside this FIQ-routine there is a static counter. When it reaches 16000 it is reseted and a Software interrupt (SWI) is generated every second.

The SWI-routine has do to some computations and then to display it all on a special three wire conected display.

The programm does not work with 16000 Timer0 Interrupts per second.
It is terminated by Abort-Mode. This comes a little unexpected to my. The effect is gone if i turn down FIQ frequency downto 100Hz. Is it possible that interrupts create a stack overflow?

Should i post my code?

Parents
  • How do you expect that your SWI will be finished in 1/16000th of a second, i.e. when it is time for the next FIQ? Remember, you only have 62.5us in total for both FIQ and SWI.

    You only require one result/second to be displayed, so why not let your main loop handle the display output whenever it sees the flag that the FIQ has collected 16000 samples?

Reply
  • How do you expect that your SWI will be finished in 1/16000th of a second, i.e. when it is time for the next FIQ? Remember, you only have 62.5us in total for both FIQ and SWI.

    You only require one result/second to be displayed, so why not let your main loop handle the display output whenever it sees the flag that the FIQ has collected 16000 samples?

Children
More questions in this forum