/* * 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; }