PWM_Pin and PWM_Pin_STM32
This commit is contained in:
40
Core/Src/Components/PWM_Pin_STM32.cpp
Normal file
40
Core/Src/Components/PWM_Pin_STM32.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* PWM_Pin_STM32.cpp
|
||||
*
|
||||
* Created on: Feb 11, 2024
|
||||
* Author: Gabriel
|
||||
*/
|
||||
|
||||
#include "PWM_Pin_STM32.hpp"
|
||||
|
||||
PWM_Pin_STM32::PWM_Pin_STM32(TIM_HandleTypeDef* hTim, uint32_t channel) :
|
||||
hTim(hTim), channel(channel){
|
||||
|
||||
}
|
||||
|
||||
PWM_Pin_STM32::~PWM_Pin_STM32() {
|
||||
|
||||
}
|
||||
|
||||
int32_t PWM_Pin_STM32::init() {
|
||||
if(HAL_TIM_PWM_Start(hTim, channel) == HAL_OK){
|
||||
return 0;
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int32_t PWM_Pin_STM32::setDuty(float dutyCycle) {
|
||||
if(dutyCycle<0 || dutyCycle>1){
|
||||
// Invalid parameter
|
||||
return -1;
|
||||
}
|
||||
uint32_t ccr = dutyCycle*__HAL_TIM_GET_AUTORELOAD(hTim);
|
||||
__HAL_TIM_SET_COMPARE(hTim, channel, ccr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t PWM_Pin_STM32::setFreq(float freq) {
|
||||
// TODO Implement this function
|
||||
return -2;
|
||||
}
|
||||
Reference in New Issue
Block a user