/* Implementation of PWM support for the Espressif SDK. * * Part of esp-open-rtos * Copyright (C) 2015 Guillem Pascual Ginovart (https://github.com/gpascualg) * Copyright (C) 2015 Javier Cardona (https://github.com/jcard0na) * BSD Licensed as described in the file LICENSE */ #ifndef EXTRAS_PWM_H_ #define EXTRAS_PWM_H_ #include #define MAX_PWM_PINS 8 #ifdef __cplusplus extern "C" { #endif //Warning: Printf disturb pwm. You can use "uart_putc" instead. /** * Initialize pwm * @param npins Number of pwm pin used * @param pins Array pointer to the pins * @param reverse If true, the pwm work in reverse mode */ void pwm_init(uint8_t npins, const uint8_t* pins, uint8_t reverse); /** * Set PWM frequency. If error, frequency not set * @param freq PWM frequency value in Hertz */ void pwm_set_freq(uint16_t freq); /** * Set Duty between 0 and UINT16_MAX * @param duty Duty value */ void pwm_set_duty(uint16_t duty); /** * Restart the pwm signal */ void pwm_restart(); /** * Start the pwm signal */ void pwm_start(); /** * Stop the pwm signal */ void pwm_stop(); #ifdef __cplusplus } #endif #endif /* EXTRAS_PWM_H_ */