41 lines
972 B
C
41 lines
972 B
C
/*
|
|
* 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_ */
|