/* @req SWS_Gpt_00288 */ void Gpt_SetMode( Gpt_ModeType Mode ) { /* @req SWS_Gpt_00228 */ VALIDATE((STD_ON == Gpt_Global.initRun), GPT_SETMODE_SERVICE_ID, GPT_E_UNINIT); /* @req SWS_Gpt_00231 */ VALIDATE(((GPT_MODE_SLEEP == Mode) || (GPT_MODE_NORMAL == Mode)), GPT_SETMODE_SERVICE_ID, GPT_E_PARAM_MODE); /* @req SWS_Gpt_00164 */ if (GPT_MODE_SLEEP == Mode) { for (uint8 chnlCnt = 0; chnlCnt < GPT_CHANNEL_CNT; chnlCnt++) { if ((!Gpt_Global.Gpt_WakUpEnable[chnlCnt]) && (GPT_STATE_RUNNING == Gpt_Global.Gpt_ChannelState[chnlCnt])) { Gpt_StopTimer( GET_CONFIG(chnlCnt).GptChannelId); //Stop channels not configured/Enabled for wakeup } /* @req SWS_Gpt_00341 */ //No Wakeup timer started } } else { /* @req SWS_Gpt_00165 */ //Other timers are not started in Normal mode } /* @req SWS_Gpt_00151 */ Gpt_Global.mode = Mode; }
/** * \brief Scheduler De-initialization * \author Gerardo Valdovinos * \param void * \return void */ void SchM_DeInit(void) { pstOs_TaskCfg = NULL; /* De-initialize OsTick timer */ Gpt_DisableNotification(0); Gpt_StopTimer(0); }
void Gpt_DeInit(void) { Gpt_ChannelType channel; VALIDATE( (Gpt_Global.initRun == STD_ON), GPT_DEINIT_SERVICE_ID, GPT_E_UNINIT ); for (channel=0; channel<GPT_CHANNEL_CNT; channel++) // Validate that all channels have been stopped { VALIDATE( (Gpt_Unit[channel].state != GPT_STATE_STARTED), GPT_DEINIT_SERVICE_ID, GPT_E_BUSY ); Gpt_StopTimer(channel); // Should this be done here? } Gpt_Global.initRun = STD_OFF; Gpt_Global.configured = 0; //_config.config = NULL; }
void Gpt_SetMode(Gpt_ModeType mode) { int i; VALIDATE( (Gpt_Global.initRun == STD_ON), GPT_SETMODE_SERVICE_ID, GPT_E_UNINIT ); VALIDATE( ( mode <= GPT_MODE_SLEEP ), GPT_SETMODE_SERVICE_ID, GPT_E_PARAM_MODE ); if (mode == GPT_MODE_NORMAL) { //PIT.CTRL.B.MDIS = 0; IMPROVEMENT // Do NOT restart channels } else if (mode == GPT_MODE_SLEEP) { //PIT.CTRL.B.MDIS = 1; IMPROVEMENT // Disable all for (i= 0; i <= GPT_CHANNEL_CNT; i++) { Gpt_StopTimer(i); } } }