#include "Cpu.h" #define RUN 0 #define VLPR 1 #define VLPS 2 uint16_t SleepCouter = 0; uint16_t WakeupCouter = 0; int main(void) { CLOCK_DRV_Init(&clockMan1_InitConfig0); PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); TIMING_Init(&WakeupTiming_pal_instance, &WakeupTiming_pal_InitConfig); TIMING_Init(&SleepTiming_pal_instance, &SleepTiming_pal_InitConfig); INT_SYS_EnableIRQ(LPIT0_Ch0_IRQn); POWER_SYS_Init(&powerConfigsArr, POWER_MANAGER_CONFIG_CNT, &powerStaticCallbacksConfigsArr, POWER_MANAGER_CALLBACK_CNT); TIMING_StartChannel(&WakeupTiming_pal_instance,0,12500); while(1) { } } void voidWakeupTimerCallback(void * userData) { SleepCouter++; PINS_DRV_WritePin(PTD, 15, SleepCouter%2); if (SleepCouter == 1000) { SleepCouter = 0; TIMING_StopChannel(&WakeupTiming_pal_instance,0); TIMING_StartChannel(&SleepTiming_pal_instance,0,480000); POWER_SYS_SetMode(VLPS,POWER_MANAGER_POLICY_FORCIBLE); } } void voidSleepTimerCallback(void * userData) { WakeupCouter++; PINS_DRV_WritePin(PTD, 15, WakeupCouter%2); if (WakeupCouter == 166) { WakeupCouter = 0; TIMING_StopChannel(&SleepTiming_pal_instance,0); TIMING_StartChannel(&WakeupTiming_pal_instance,0,12500); POWER_SYS_SetMode(RUN,POWER_MANAGER_POLICY_FORCIBLE); } else { POWER_SYS_SetMode(VLPS,POWER_MANAGER_POLICY_FORCIBLE); } }