117 if (pwm->
unit == 0xFF) {
void hw_pwm_stop(hw_pwm_t *pwm)
Stop PWM output.
void hw_pwm_finalize(hw_pwm_t *pwm)
Finalize and release a PWM unit.
void hw_pwm_set_callback(hw_pwm_callback_t callback, void *userdata)
Set the PWM interrupt callback handler.
PWM configuration structure for setup parameters.
uint8_t hw_pwm_gpio_unit(uint8_t gpio)
Get the PWM unit for a GPIO pin.
bool hw_pwm_start(hw_pwm_t *pwm, uint8_t gpio, float duty_percent)
Start PWM output on a specific GPIO pin.
hw_pwm_t hw_pwm_init(uint8_t unit, hw_pwm_config_t *config)
Initialize a PWM unit.
uint8_t unit
PWM unit number.
void hw_pwm_set_config(hw_pwm_t *pwm, const hw_pwm_config_t *config)
Apply configuration to a PWM unit.
struct hw_pwm_t hw_pwm_t
PWM structure representing a PWM instance.
PWM structure representing a PWM instance.
bool enabled
PWM unit enabled state.
uint8_t hw_pwm_count()
Get the number of PWM units.
hw_pwm_config_t hw_pwm_get_config(float freq)
Get PWM configuration.
static bool hw_pwm_valid(hw_pwm_t *pwm)
Validate the PWM unit.
void(* hw_pwm_callback_t)(uint8_t unit, void *userdata)
PWM interrupt callback function pointer.
void hw_pwm_set_irq_enabled(hw_pwm_t *pwm, bool enabled)
Enable or disable PWM wrap interrupt for a slice.
uint32_t wrap
Counter wrap value (TOP), determines PWM period.
uint32_t wrap
Current wrap value for duty cycle calculations.
float hw_pwm_get_freq(hw_pwm_config_t *config)
Returns the frequency for a configuration.
float divider
Clock divider.