/* * stm32f4_pwm.h * * Created on: Aug 9, 2016 * Author: tkl */ #ifndef SOURCE_FIRMWARE_ARCH_STM32F4XX_DRIVER_INCLUDE_STM32F4_PWM_H_ #define SOURCE_FIRMWARE_ARCH_STM32F4XX_DRIVER_INCLUDE_STM32F4_PWM_H_ enum stm32f4_pwm_channel { channel_1 = 1, channel_2, channel_3, channel_4 }; struct stm32f4_pwm { TIM_TypeDef *timer; const TIM_TimeBaseInitTypeDef *timer_cfg; const TIM_OCInitTypeDef *output_compare_cfg; const TIM_BDTRInitTypeDef *bdtr_cfg; GPIO_TypeDef *port; uint8_t pin_src; const GPIO_InitTypeDef *port_cfg; enum stm32f4_pwm_channel channel; }; int stm32f4_pwm_open(const void *pwm); int stm32f4_pwm_close(const void *pwm); int stm32f4_pwm_set_duty_cycle(const void *pwm, unsigned int duty_cycle_percent); static const struct pwm_fp stm32f4_pwm_fp = { .open = stm32f4_pwm_open, .close = stm32f4_pwm_close, .set_duty_cycle = stm32f4_pwm_set_duty_cycle, }; #endif /* SOURCE_FIRMWARE_ARCH_STM32F4XX_DRIVER_INCLUDE_STM32F4_PWM_H_ */