cancel
Showing results for 
Search instead for 
Did you mean: 

ADC ISR stops getting called after a while, but the ADC continues sampling

phb
Associate II
Posted on December 03, 2014 at 12:15

I have ADC1 and ADC2 sampling by using the hardware signal (external interrupt) from a timer. They use the same timer, but two different channels.

It works for 10 minutes+, but then the ADC ISR is no longer called. The timer ISR is still called so as far as I can understand the ADC should still get the hardware signal. And it does! I can see while debugging that the ADC data register is still updating with the correct values when I adjust the voltage on the ADC input channel. This means that it works as it should, but the ADC ISR where I get the ADC converted value is not triggered.

The ADC error ISR is not called either, I have a breakpoint in the ISR and I use trace to print out debug message if it enters.

When I read the ADC_SR after it has stopped the JEOC bit is set, so the ADC ISR should be triggered, but it is not. (I use injected, but no regular).

Any idea how I can debug this further? I use the HAL library.

Summary:

ADC ISR or ADC error ISR is not triggered, but the ADC sampled values are still being updated correctly.

#timer #adc #error
0 REPLIES 0