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.

ADC interrupts from SEQ1INT, SEQ2INT and ADCINT



Hi evryone! 

I'm trying to use separated interrupts for two Sequences in a dual sequencer mode. Independently from sequencer which I use interrupt vector after EOC always come to ADCINT. I want to have two separated interrupts for sequencer 1 and sequencer 2. It is quite clear that ADCINT is triggered by both SEQ1 or SEQ2 on the EOC, but I can't figure out how to split them up, course if it possible.

Regards,

Illia 

  • Hi Illia,

    Which device are you using? F28335 ? If so, check the ADCST register, you've INT_SEQ1 & INT_SEQ2 flags.

    Regards,
    Gautam
  • Hi Gautam,

    Yes you are right, I am using F28335. I have already checked ADCST register. Interrupt flags are set after EOC. So the interrupt from SEQ1 or SEQ2 occured. The problem is that doesn't metter which SEQ1 or SEQ2 caused the interrupt, the interrupt vector always starts from ADCINT(INT1.6), but not from SEQ1(INT1.1) or SEQ2 (INT1.2). In standard libruary it looks like next:

    I want to be in INT1.1 or INT1.2. But I always end up in INT1.6, in spite of the priority of interrupts form SEQ1 and SEQ2 which is higher than ADCINT. 

    // INT1.1
    interrupt void SEQ1INT_ISR(void) //SEQ1 ADC
    {
    // Insert ISR Code here

    // To receive more interrupts from this PIE group, acknowledge this interrupt
    // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

    // Next two lines for debug only to halt the processor here
    // Remove after inserting ISR Code

    // asm (" ESTOP0");
    EALLOW;
    GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;

    for(;;);

    }

    // INT1.2
    interrupt void SEQ2INT_ISR(void) //SEQ2 ADC
    {

    // Insert ISR Code here

    // To receive more interrupts from this PIE group, acknowledge this interrupt
    // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

    // Next two lines for debug only to halt the processor here
    // Remove after inserting ISR Code

    EALLOW;
    GpioDataRegs.GPBSET.bit.GPIO34 = 1;
    for(;;);

    }


    // INT1.6

    interrupt void ADCINT_ISR(void) // ADC
    {
    // Insert ISR Code here

    // To receive more interrupts from this PIE group, acknowledge this interrupt
    // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

    // Next two lines for debug only to halt the processor here
    // Remove after inserting ISR Code

    EALLOW;
    GpioDataRegs.GPBSET.bit.GPIO34 = 1;
    for(;;);

    }