|
void App_TimeTickHook (void)
{
#if (APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED) && (OS_PROBE_HOOKS_EN > 0)
OSProbe_TickHook();
#endif
/* èç1û֮ǰÔËDDμÄêÇ¿ÕÏDèÎÎñ */
if(OSPrioCur == OS_TASK_IDLE_PRIO)
{
g_uiEnd = CPU_TS_TmrRd();
/* àÛ¼ÆDYÃßμÄ걼䣬μ¥λê±ÖóÖüÆú¸öêy */
g_ullCntTotal += (g_uiEnd - g_uiStart);
/* ¼Ç¼μ±Ç°Ïμí3걼䣬μ¥λ1ms */
g_uiCnt = OSTimeGet();
/* ÖØD¿aÆôê±Öó */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
}
}
void App_OS_IdleTaskHook (void)
{
OS_ERR err;
CPU_SR_ALLOC();
/* 1رÕê±Ö󣬽¨òé¼óéÏμ÷¶èËø£¬ÕaàïÎ′×ö′|àí */
// OSSchedLock(&err);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, DISABLE);
// RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, DISABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, DISABLE);
RTC_ClearFlag(RTC_FLAG_SEC);
while(RTC_GetFlagStatus(RTC_FLAG_SEC) == RESET);
RTC_SetAlarm(RTC_GetCounter()+ 3); //3õê¼»ˉÏèËˉ 15s,
RTC_WaitForLastTask();
// OSSchedUnlock(&err);
__WFI();
// PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);
} |
|