tasks

malacay wrote on Thursday, January 05, 2012:

Hello,

I work in the
Now I want to perform some task to save energy.
The tasks have been created from a different task.
The craeter Task have the priority 2.He goes after he create the task in the state suspend.
The energy-saving tasks are first priority. I let them wake up with a RTC interrupt. After that, the task generator is placed in the ready state.

Energy save Task:

        rtc_config();
        rtc(RTC_COUNT_BETWEEN_WAKEUP);
        EMU_EnterEM2(false);
vTaskResume( xHandle );

  • This will not run. Why?

other solution:
Energy save Task:
        rtc_config();
        RTC_Interrupt = 0;
        rtc(RTC_COUNT_BETWEEN_WAKEUP);
        do
        {         
  EMU_EnterEM2(false);
}while(RTC_Interrupt == 0);   
        vTaskResume( xHandle );

this runs, because the Task is waiting

Does anyone have an explanation?

rtel wrote on Thursday, January 05, 2012:

Sorry, I’m not following your code or your intention.  I’m guessing you are using an EFM32 part - in which case you might get something from the following contributed code and documentation:
http://interactive.freertos.org/entries/20291196-energy-optimized-port-of-freertos-6-for-efm32

Regards.