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.

ISR Issues

Other Parts Discussed in Thread: TMS320F28335

Hi All,

We are using TMS320F28335 for project development on CCS5.2 SYS/BIOS.

We configured some HWI,SWI and Tasks.

We have an ADC Isr, the code in ADC Isr is taking  40us.But sometimes the same code is taking approx 46us .

I am confused that why the same code in ISR is taking extra time sometimes.

Can anyone share ideas about this?

Thanks,

Manju

  • What else is running in your system.  Could it be another interrupt occuring while you are in your ADC isr?  Try Hwi_disable in your ADC isr to see if it makes a difference.

    Judah

  • Hi Judah,

    There are more HWI Isr we have configured in our project.

    But in the GUI Option for HWI,We gave the Masking option as MaskingOption_SELF,so when it is executing ADC ISR other ISR must be disabled.

    and the ADC isr is having highest priority as well.

    FYI:-we are calculating the execution time of ADC Isr by setting and clearing one GPIO Led at the start and end of ADC Isr.

    Thanks,

    Manju

  • Manju,

    SELF means it will prevent yourself from interrupting again.  This does not mask off other interrupts.  To mask off all do ALL.

    I don't believe priority has any effect here.  Priority only comes into play when 2 simulanteous interrupts are ready to run.

    Please try do to it with masking ALL and see what happens.

    Judah

  • Hi Judah,

    Thanks for the reply,

    In addition to giving the masking option as SELF,we placed a code at the start of the ISR to disable all other interrupts(Is Masking Option ALL support for architecture TMS320F28335 architecture?)

    But we didnt tested that issue is still pertaining or not,we will test that and keep you informed about that.

    Thanks,

    Manju.

  • Manju,

    Yes it is available....you can do it under Hwi instance "dispatcher" tab from the GUI.   Or textually, something like the following:

    bios.HWI.instance("HWI_USER3").fxn = prog.extern("mYIsr", "asm");
    bios.HWI.instance("HWI_USER3").useDispatcher = 1;
    bios.HWI.instance("HWI_USER3").interruptMask0 = "all";

    Judah