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.

Concerto - C28x timer priority

Guru 10750 points
Other Parts Discussed in Thread: SYSBIOS

Hi,

I'm trying to use ti.sysbios.family.c28.Timer I defined a periodic timer to run every 2mS using Timer Id 1, I have task in the system with priority "1", when the task is running the timer function is not working, why is that? as I understood the Timer should have higher priority than tasks, is this correct?

Thanks,

HR

  • HR,

    How did you configure your Timer?  Is it a "one shot" timer?  Or is it periodic?  If it is a "one shot" timer then it will only run once.

    Another idea.  Timers run in Hwi context.  A Hwi will always interrupt a Task, unless you have disabled interrupts within the Task code.  Are you disabling interrupts in the Task code?

    Steve

  • Steve,

    The Timer is configure to periodic, the timer works fine when the task goes to sleep, is there any definition in the task definition which prevent the Timer (Hwi) to run?

    Thanks,

    HR

  • HR,

    Sorry, I see that you mentioned your timer is periodic in your original post, I must have overlooked that.

    There are some calls within the Task code to disable and enable interrupts for some atomic operations.  However, they are in the scheduler, and a few other places such as Task_startup, Task_exit, etc. (please see the Task.c sources for full details).  But, I don't think these should be causing any problem, as this code is known to work well.

    Can you check ROV when you are seeing this problem?  Do you see anything in the Timer view for ROV that looks out of the ordinary?  What is the 'startMode' for the Timer?  Is it "user"?

    Also please check the Task view.  Are there any stack overflows?

    Steve

  • Also, please check the IER to see if interrupts are enabled or disabled.

    Steve

  • Steve,

    OK, sorry but it was my mistake, the Interrupt was so fast that the led was always on...changing the time fixed it,

    Thanks,

    HR