This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SIMPLELINK-MSP432-SDK: MSP432 ADC14 Multiple channel No repeat enabling 2 interrupts for 2 different ADC channel input does not raise interrupt for later channel

Part Number: SIMPLELINK-MSP432-SDK

Hi,

I have enabled 2 interrupts for 2 different ADC channel input, ie. 1 group is ADC_input0 to ADC_input6 & other is ADC_input7 to ADC_input9. Interrupt is enabled for ADC_input6 &  ADC_input9 & triggered with different timer module with different time interval. I have configured ADC for Multiple Channel, no repeat mode. During timer1 trigger,  I configure the MultiSequenceMode conversion from ADC_MEM0 to ADC_MEM6 and during timer2 trigger, MultiSequenceMode conversion from ADC_MEM7 to ADC_MEM9. The problem I noticed is, interrupts are not handled properly every time.

Thanks in advance

  • As I understand it, you're reconfiguring CSTARTADD and SHS on the fly so as to run two different sequences. I'm pretty sure this can work.

    The things I would check:

    1) You need to turn off ENC in order to modify CSTARTADD and/or SHS [Ref TRM (SLAU356I) Figs 22-13 and 22-14 -- note greyed fields]. (Actually you have to toggle ENC off/on anyway to use CONSEQ=1 with a timer trigger.)

    2) Check your timer periods to make sure their meta-cycles can't collide (else you might get a trigger while you're re-configuring). Being relatively-prime is necessary, but (I think) not sufficient since ISRs take some time to run.

    If you can post your configuration sequence(s) someone here might be able to spot something.

  •  point number 1) resolved my issue, I have to turn off ENC before modifying CSTARTADD bits