From 7a1dd7bbdb43f697f5674a8a27a878fd681d2fce Mon Sep 17 00:00:00 2001 From: Newg Date: Fri, 21 Oct 2022 16:25:45 +0200 Subject: [PATCH] Update PWM Drivers --- FileInclude/MyTimer.c | 22 ++++++++++++++++++++++ FileInclude/MyTimer.h | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/FileInclude/MyTimer.c b/FileInclude/MyTimer.c index d907060..fc4a163 100644 --- a/FileInclude/MyTimer.c +++ b/FileInclude/MyTimer.c @@ -278,6 +278,28 @@ void Set_PWM_PRCT(TIM_TypeDef * Timer, char Channel, int percent){ } +void Set_Duty_Cycle(TIM_TypeDef * Timer , char Channel,uint16_t crr){ + switch(Channel){ + case 1: + Timer->CCR1 = crr; + break; + case 2: + Timer->CCR2 = crr; + break; + case 3: + Timer->CCR3 = crr; + break; + case 4: + Timer->CCR4 = crr; + break; + } +} + + +uint16_t Get_Max_Duty(TIM_TypeDef * Timer){ + return Timer->ARR; +} + diff --git a/FileInclude/MyTimer.h b/FileInclude/MyTimer.h index 184d3e8..b460eb2 100644 --- a/FileInclude/MyTimer.h +++ b/FileInclude/MyTimer.h @@ -28,6 +28,16 @@ void MyTimer_Base_Stop(TIM_TypeDef * Timer ); void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (* IT_function) (void)); void MyTimer_PWM(TIM_TypeDef * Timer, char Channel); +/** +* alpha = CRR/ARR, use Get_Max_Duty(Timer) to get ARR +*/ +void Set_Duty_Cycle(TIM_TypeDef * Timer , char Channel,uint16_t crr); + +/** +* Returns ARR +*/ +uint16_t Get_Max_Duty(TIM_TypeDef * Timer); + void Set_PWM_PRCT(TIM_TypeDef * Timer, char Channel, int percent);