Beispiel #1
0
/* @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;
}
Beispiel #2
0
/**
* \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);    
}
Beispiel #3
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;
}
Beispiel #4
0
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);
		}
	}
}