X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fpwm_avr.h;h=0283269e6271c8c0aaef298e0352f554ecaa40fe;hb=429452acefe6357c869e3dd7da4261137ab02b42;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..0283269e 100644 --- a/bertos/cpu/avr/drv/pwm_avr.h +++ b/bertos/cpu/avr/drv/pwm_avr.h @@ -38,11 +38,37 @@ * */ -#include - -#if CPU_AVR - #warning TODO:No AVR implementation of PWM. -/*#elif Add other AVR families here */ -#else - #error Unknown CPU -#endif +#ifndef DRV_PWM_AVR_H +#define DRV_PWM_AVR_H + +#include "pwm_map.h" + +#include "appconfig.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); +pwm_period_t pwm_hw_getPeriod(PwmDev dev); + +#endif /* DRV_ADC_AT91_H */