oC_ErrorCode_t errorCode = oC_ErrorCode_None;
if ( oC_AssignErrorCode(&errorCode , oC_TIMER_LLD_TurnOnDriver()) )
{
oC_TIMER_LLD_PeripheralPin_t RedPwmPin;
oC_TIMER_LLD_Channel_t RedPwmChannel;
oC_TIMER_LLD_SubTimer_t RedPwmSubTimer;
if(
oC_AssignErrorCode(&errorCode , oC_TIMER_LLD_ReadPeripheralPinsOfPin( RedPin , &RedPwmPin , &RedArraySize)) &&
oC_AssignErrorCode(&errorCode , oC_TIMER_LLD_ReadSubTimerOfPeripheralPin(RedPwmPin, &RedPwmSubTimer))
)
{
RedPwmChannel = oC_TIMER_LLD_GetChannelOfPeripheralPin(RedPwmPin);
if(
oC_AssignErrorCodeIfFalse(&errorCode ,!oC_TIMER_LLD_IsChannelUsed(RedPwmChannel,RedPwmSubTimer) , oC_ErrorCode_ChannelIsUsed ) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_SetChannelUsed(RedPwmChannel , RedPwmSubTimer )) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_SetPower(RedPwmChannel ,
oC_Power_On)) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_TimerStop(RedPwmChannel , RedPwmSubTimer)) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ChangeMode(RedPwmChannel , RedPwmSubTimer, oC_TIMER_LLD_Mode_PWM )) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ChangeFrequency(RedPwmChannel , RedPwmSubTimer, oC_MHz(80) , oC_MHz(10))) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ChangeMaximumValue(RedPwmChannel , RedPwmSubTimer, 255)) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ChangeMatchValue(RedPwmChannel , RedPwmSubTimer, 0)) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ConnectPeripheralPin(RedPwmPin) ) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_ChangeStartPwmState(RedPwmChannel, RedPwmSubTimer , oC_TIMER_LLD_PwmState_Low)) &&
oC_AssignErrorCode( &errorCode , oC_TIMER_LLD_TimerStart(RedPwmChannel , RedPwmSubTimer))
)
{
errorCode = oC_ErrorCode_None;
}
}
}