Hardware Abstraction Layer for FreeRTOS
pwm_software.h
Go to the documentation of this file.
1 #ifndef PWM_SOFTWARE_H_
2 #define PWM_SOFTWARE_H_
3 
4 #include <pwm.h>
5 #define PWM_PRV
6 #include <pwm_prv.h>
7 #include <gpio.h>
8 extern const struct pwm_ops software_pwm_ops;
9 struct pwm_software {
10  struct pwm_generic gen;
11  struct timer *timer;
12  struct gpio_pin *pin;
13  uint64_t period;
14  uint64_t duty_cycle;
15  uint64_t duty_cycleNew;
16  bool updated;
17  bool running;
18  bool oldvalue;
19 };
21 int32_t pwm_software_connect(struct pwm *pwm, struct timer *timer, struct gpio_pin *pin);
22 #define ADD_PWM_SOFTWARE(id) \
23  struct pwm_software pwm_software_##id = { \
24  PWM_INIT_DEV(software) \
25  HAL_NAME("Software PWM " #id) \
26  };\
27  PWM_ADDDEV(software, pwm_software_##id)
28 #define PWM_SOFTWARE_ID(id) HAL_GET_ID(pwm, software, pwm_software_##id)
29 #endif
pwm_generic
Definition: pwm.h:45
pwm_prv.h
pwm_software_connect
int32_t pwm_software_connect(struct pwm *pwm, struct timer *timer, struct gpio_pin *pin)
gpio.h
pwm.h