X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fpwm_avr.h;h=76c162074d40dab21bcf6e2c273b349dc5aac9f5;hb=0f60d6b24cf8ec1c9bd8dca82fed6325932c5aca;hp=81aeb0ab1d93c3cb9c46365bc45fa4b44e14e95c;hpb=6863656e1f7c8032b1405e38a4fbdb7827fec408;p=bertos.git diff --git a/bertos/cpu/avr/drv/pwm_avr.h b/bertos/cpu/avr/drv/pwm_avr.h index 81aeb0ab..76c16207 100644 --- a/bertos/cpu/avr/drv/pwm_avr.h +++ b/bertos/cpu/avr/drv/pwm_avr.h @@ -32,17 +32,41 @@ * * \brief Low-level PWM module for AVR (interface). * - * \version $Id$ * * \author Daniele Basile * */ -#include +#ifndef DRV_PWM_AVR_H +#define DRV_PWM_AVR_H -#if CPU_AVR - #warning TODO:No AVR implementation of PWM. -/*#elif Add other AVR families here */ -#else - #error Unknown CPU -#endif +#include "hw/pwm_map.h" + +#include + +#define PWM_HW_MAX_PRESCALER_STEP 10 +#define PWM_HW_MAX_PERIOD 0xFFFF + +/** + * Type definition for pwm period. + */ +typedef uint16_t pwm_period_t; + +/** + * Structur definition for pwm driver. + */ +typedef struct PwmChannel +{ + /* */ +} PwmChannel; + + +void pwm_hw_init(void); +void pwm_hw_setFrequency(PwmDev dev, uint32_t freq); +void pwm_hw_setDutyUnlock(PwmDev dev, uint16_t duty); +void pwm_hw_disable(PwmDev dev); +void pwm_hw_enable(PwmDev dev); +void pwm_hw_setPolarity(PwmDev dev, bool pol); +pwm_period_t pwm_hw_getPeriod(PwmDev dev); + +#endif /* DRV_ADC_AT91_H */