Wake up timer does not work correctly.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Wake up timer does not work correctly.

529 Views
danielchai
Senior Contributor I

Hi All,

I make the MCU MK60FN1M0VLQ12 to LLS mode and use the following function to set the wake up timer.

But every time, after I call the set_timer_wakeup fucntion, it will enter the timer_wakeup_isr intermediately.

And I put a LED_Toggle command after enter_lls() , it never run that instruction. It seems the wake up timer does not wake up the MCU.

Any ideas about this?

Thank you.

-Daniel

static void timer_wakeup_isr(pointer parameter)
{
    uint_32 timer = (uint_32)parameter;
   
    /* Stop the timer */
    _lpt_run (timer, FALSE);
    _lpt_clear_int (timer);
   
    /* Do not return to sleep after isr again */
    _lpm_wakeup_core ();
}


/*FUNCTION*-----------------------------------------------------
*
* Task Name    : install_timer_interrupt
* Comments     : Installs timer with period 10 seconds.
*
*END*-----------------------------------------------------------*/

static void install_timer_interrupt (void)
{
    LPM_REGISTRATION_STRUCT registration;
    uint_32                 dummy_handle;
   
    /* Install the timer */
    if (MQX_OK != _lpt_install (0, 10 * 1000000, LPT_FLAG_CLOCK_SOURCE_LPO, 2, timer_wakeup_isr, TRUE))
    {
        printf ("\nError during installation of timer interrupt!\n");
        _task_block();
    }
   
    /* Stop the timer */
    _lpt_run (0, FALSE);
}


/*FUNCTION*-----------------------------------------------------
*
* Task Name    : set_timer_wakeup
* Comments     : Run timer with period set to 10 seconds.
*
*END*-----------------------------------------------------------*/
static void set_timer_wakeup (void)
{
    _lpt_run (0, TRUE);
}

void main()

{

     install_timer_interrupt();

     set_timer_wakeup();

     enter_lls();

     LED_Toggle;          //It never run this.

}

0 Kudos
1 Reply

282 Views
danielchen
NXP TechSupport
NXP TechSupport

Under LLS mode: ARM core enters Deep Sleep Mode, HCLK=OFF, FCLK=OFF, wakeup should be triggered by LLWU pin or module source or Reset pin.

You can refer to K60 Reference Manual, Chapter 16, Low-Leakage Wake-up Unit

0 Kudos