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.

MSP430FR5969 Timer TI-RTOS

Other Parts Discussed in Thread: MSP-EXP430FR5969, MSP430FR5969, SYSBIOS

I am using the MSP-EXP430FR5969 LaunchPad board with TI-RTOS 2.12 and CCS6.1.

I'm trying to use a timer to get an accurate delay and would prefer to use the TI-RTOS Timer functionality rather than directly using the hardware.

When I added the Timer module and used the example code in the TI-RTOS User's Guide, I got this build error in the configuration step:

Timer is not supported for the specified device (MSP430FR5969).
js: "C:/ti/tirtos_msp43x_2_12_00_24/products/bios_6_41_03_51/packages/ti/sysbios/timers/gptimer/Timer.xs", line 449: Error: Timers unsupported on device!

Is there a fix or workaround for this?

  • This error indicates that an incorrect timer type has been configured.  The appropriate timer module for MSP430 is: ti.sysbios.family.msp430.Timer

    Can you please describe how you added the Timer module to your configuration?  Did you use the graphical configuration tool, or did you modify the text in your application’s configuration file (with .cfg extension) directly?  

    Thanks,
    Scott

  • I added it with the graphical tool.

    I forgot to mention I had already tried it with ti.sysbios.family.msp430.timer, but that gave me this linker errror:
    Undefined reference to 'ti_sysbios_timers_gptimer_Timer_Params__init__S' in file ./XXX.obj

    Double-clicking on the error in the "Problems" pane brought me to the cfg script and showed a dialog that said:
    Quick Fix: This symbol is defined by the module 'ti.sysbios.timers.gptimer.Timer'. Try adding the following line to the configuration file:
    var ti_sysbios_timers_gptimer_Timer = xdc.useModule('ti.sysbios.timers.gptimer.Timer');

    I'm not sure why I had to do this, but after I did so I got the "Timers unsupported on device" error again.
  • When you originally added Timer support, did you do this in the “Available Products” view, by navigating to select the Timer support from ti.sysbios.timers.gptimer.Timer?  That is the only way that I can find that this improper gptimer module could have gotten pulled into your application.  Did you do that?

    If you had done that, and didn’t remove it, and then tried to use ti.sysbios.family.msp430.Timer, then the gptimer error would still persist.

    Can you edit your .cfg file and remove the line that says:

    var Timer = xdc.useModule(‘ti.sysbios.timers.gptimer.Timer’);

    Then save the file and rebuild.

    Once the gptimer reference is removed, you can add a 430 Timer by doing this:  In the top-level “System Overview”,  click “System Overview”, and click on the “TI-RTOS Kernel” box.  Then in the “Threads” box, right click on the “Timer” box, and select “Use Timer”.  This will pull in the appropriate MSP430-specific Timer support into your application.  At this point a new “Timer” module is shown in the “Outline” view (on the right), which lists modules used by the application.  You can right click on that Timer, and select ”New Timer…” to create a new Timer instance “timer0”.  Click on “timer0” and then setup the appropriate parameters.

    Does this work for you?

    Thanks,
    Scott

  • I followed your steps and it built with no errors. I removed the example code which probably linked to GPTimer (I think that code may have been causing my problems), and I'm switching to static timer configuration as you suggested. Thanks for the help!