/******************************************************************************* ** ** ** FILENAME : CddTps929240.c ** ** ** ** AUTHOR : MES-Engineering ** ** ** ** DESCRIPTION : CddTps929240 general process ** ** ** ******************************************************************************/ /****************************************************************************** ** Includes ** ******************************************************************************/ #include "CddTps929240/Gen/CddTps929240_UartM.h" #include "CddTps929240/Gen/CddTps929240_PwmOut.h" #include "CddTps929240/Gen/CddTps929240_Diag.h" #include "CddTps929240/Gen/CddTps929240_EepMode.h" #include "AL_Helper/AL_Helper.h" /******************************************************************************* ** Private Macro Definitions ** *******************************************************************************/ /******************************************************************************* ** Private Variable Declarations ** *******************************************************************************/ STATIC_AL uint8 InitStep = CDDTPS929_INIT_PWM; STATIC_AL uint8 InitWait = 0u; STATIC_AL CONST_AL Tps929FuncCfgTyp Tps929_Func_Cfg[] = { TPS929240_FUNC_CFG }; STATIC_AL uint8 Tps929_Func_Timer[TPS929_FUNC_NUM] = { 0u }; /******************************************************************************* ** Public Variable Declarations ** *******************************************************************************/ #ifdef TPS929EEPMODE uint8 Tps929_EepMode = TPS929_EEPMODE; #endif /******************************************************************************* ** Private Function Declarations ** *******************************************************************************/ STATIC_AL void CddTps929240_DrvInit(void); /******************************************************************************* ** Public Function Declarations ** *******************************************************************************/ /******************************************************************************* ** Fuction : uint8 Rte_riCddTps929Init ** ** ** ** Description : This function initialize the CddTps929 ** ** ** ** Parameters(in) : None ** ** ** ** Parameters(out): None ** ** ** ** Return value : None ** ** ** *******************************************************************************/ void Rte_riCddTps929Init(void) { uint8 FuncID; for (FuncID = 0u; FuncID < TPS929_FUNC_NUM; FuncID++) { Tps929_Func_Timer[FuncID] = Tps929_Func_Cfg[FuncID].Offset; } /* UartM Initialization */ UartM_Init(); /* LED driver Initialization */ InitStep = CDDTPS929_INIT_PWM; InitWait = 0u; } /******************************************************************************* ** Fuction : void CddTps929240_DrvInit ** ** ** ** Description : This function initialize the CddTps929 ** ** ** ** Parameters(in) : None ** ** ** ** Parameters(out): None ** ** ** ** Return value : None ** ** ** *******************************************************************************/ STATIC_AL void CddTps929240_DrvInit(void) { switch (InitStep) { case CDDTPS929_INIT_PWM: { /* Initialize PwmOut Duty */ CddTps929240_PwmOutInit(); InitStep = CDDTPS929_INIT_UNLOCK; break; } case CDDTPS929_INIT_UNLOCK: { /* Unlock register */ CddTps929240_UnlockInit(); InitStep = CDDTPS929_INIT_CH_EN; break; } case CDDTPS929_INIT_CH_EN: { /* Enable Channel */ CddTps929240_EnCh(); InitStep = CDDTPS929_INIT_COMPLETED; break; } default: { InitStep = CDDTPS929_INIT_COMPLETED; break; } } CddTps929240_TransmitAll(); } /******************************************************************************* ** Fuction : uint8 Rte_rpCddTps929x5ms ** ** ** ** Description : CddTps929 cycle task ** ** ** ** Parameters(in) : None ** ** ** ** Parameters(out): None ** ** ** ** Return value : None ** ** ** *******************************************************************************/ void Rte_rpCddTps929x5ms(void) { uint8 FuncID; /* UARTM management */ CddTps929240_UartM(); if (InitStep != CDDTPS929_INIT_COMPLETED) { if (InitWait > TPS929_CYC_XMS(15u)) /* initialization Delay for waiting HSS ON */ { CddTps929240_DrvInit(); } else { InitWait++; } } else { #ifdef TPS929EEPMODE if (Tps929_EepMode == TPS929_NORMAL) { #endif /* End of TPS929EEPMODE */ for (FuncID = 0u; FuncID < TPS929_FUNC_NUM; FuncID++) { if (Tps929_Func_Timer[FuncID] == 0u) /* Timer expired */ { if (Tps929_Func_Cfg[FuncID].Fuc_Name != NULL_PTR) { Tps929_Func_Cfg[FuncID].Fuc_Name(); /* Cddtps929 periodic function */ } Tps929_Func_Timer[FuncID] = Tps929_Func_Cfg[FuncID].Cycle; /* Reload the timer */ } else { Tps929_Func_Timer[FuncID]--; /* Period timer count down */ } } #ifdef TPS929EEPMODE } else { #ifdef TPS929EEP_ALL_ADDR if (Tps929_EepDevNum < TPS929_EEP_DEV_NUM) { CddTps929240_EepUpdata(Tps929_EepDev[Tps929_EepDevNum].UartCh, Tps929_EepDev[Tps929_EepDevNum].DevAddr, &Tps929_EepMode); CddTps929240_Transmit(Tps929_EepDev[Tps929_EepDevNum].UartCh, UART_CYCLE); if (Tps929_EepMode == TPS929_NORMAL) { Tps929_EepMode = TPS929_EEPMODE; Tps929_EepDevNum++; /* Program the next device */ } } else { Tps929_EepMode = TPS929_NORMAL; } #else CddTps929240_EepUpdata(TPS929_EEP_UARTCH, TPS929_EEP_ADDR, &Tps929_EepMode); CddTps929240_Transmit(TPS929_EEP_UARTCH, UART_CYCLE); #endif /* End of TPS929EEP_ALL_ADDR */ } #endif /* End of TPS929EEPMODE */ } }