X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fpwm.h;h=60ae6e922e4bfee52c7d7e6304f0acb9c39262b6;hb=6ef882a511647f7d078e40717303eeeccf30ea93;hp=03d98453499af5f23a6fb4643a414acfefebc1b9;hpb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;p=bertos.git diff --git a/bertos/drv/pwm.h b/bertos/drv/pwm.h index 03d98453..60ae6e92 100644 --- a/bertos/drv/pwm.h +++ b/bertos/drv/pwm.h @@ -29,25 +29,64 @@ * Copyright 2005 Develer S.r.l. (http://www.develer.com/) * --> * - * \version $Id$ * - * \brief PWM driver (interface) + * \brief Pulse Width Modulation (PWM) driver. * - * \version $Id$ * \author Francesco Sacchi + * \author Daniele Basile + * + * $WIZ$ module_name = "pwm" + * $WIZ$ module_configuration = "bertos/cfg/cfg_pwm.h" + * $WIZ$ module_hw = "bertos/hw/pwm_map.h" + * $WIZ$ module_supports = "not avr and not cm3" */ #ifndef DRV_PWM_H #define DRV_PWM_H -#include +#include "hw/pwm_map.h" + +#include + +#include CPU_HEADER(pwm) + #include +#define PWM_MAX_DUTY ((pwm_duty_t)0xFFFF) +#define PWM_MAX_PERIOD 0xFFFF +#define PWM_MAX_PERIOD_LOG2 16 + +/** + * PWM type define. + */ typedef uint16_t pwm_duty_t; +typedef uint32_t pwm_freq_t; + + + +/** + * Set PWM polarity of pwm \p dev. + */ +INLINE void pwm_setPolarity(PwmDev dev, bool pol) +{ + pwm_hw_setPolarity(dev, pol); +} void pwm_setDuty(PwmDev dev, pwm_duty_t duty); +void pwm_setFrequency(PwmDev dev, pwm_freq_t freq); +void pwm_setPolarity(PwmDev dev, bool pol); +void pwm_enable(PwmDev dev, bool state); void pwm_init(void); -#define PWM_MAX_DUTY 100 +/** + * Test function prototypes. + * + * See pwm_test.c for implemntation of these functions. + */ +void pwm_testRun(void); +int pwm_testSetup(void); +/* For backward compatibility */ +#define pwm_testSetUp() pwm_testSetup() +int pwm_testTearDown(void); #endif /* DRV_PWM_H */