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.

TM4C1290NCPDT: System Tick interrupt handler not being called.

Part Number: TM4C1290NCPDT
Other Parts Discussed in Thread: TM4C1231H6PM

Copied working code from a project using a TM4C1231H6PM.  Initialization code is:

    SysTickIntRegister(SysTickISR);
    SysTickPeriodSet(GetClkSpeed()/100);    // Interrupt every 10ms. (convert uS to mS), keep
    SysTickIntEnable();                // in sync with TICK_TIME_MS in tick.h
    SysTickEnable();

    IntMasterEnable();                                  // Master enable interrupts
    for(Loop=0; Loop<400000; Loop++);
    u32 SysTickCtrl = HWREG(NVIC_ST_CTRL);

SysTickCtrl is 65543 (decimal), which is COUNT set so it has rolled over, CLK_SRC = System Clock, INTEN = true, ENABLE=true

But the interrupt service routine is never called.  the system clock is 20MHz.

????

Thanks, Doug

  • Hi,

      First of all, there is an example for systick at C:\ti\TivaWare_C_Series-2.2.0.295\examples\peripherals\systick. Please use this example. 

      I'm not sure how your implement your custom GetClkSpeed() function. If GetClkSpeed() calls SysCtlClockGet() then it will not work. SysCtlClockGet() is an API only for TM4C123. You cannot use SysCtlClockGet() forTM4C129. It will produce unexpected behavior. 

  • Hi Charles,

    Thanks.  My code is exactly like the example, with the one exception that the example calls IntMasterEnable() before calling SysTickIntEnable() and SysTickEnable().  When I do that systick now works, thanks.