hw_pwm.h 837 Bytes
#ifndef _HW_PWM_H_
#define _HW_PWM_H_


//APB CLK/div
#define PWM_CLK_DIV1    1
#define PWM_CLK_DIV2    2
#define PWM_CLK_DIV4    4
#define PWM_CLK_DIV8    8


//output high level
#define PWM_DUTY_1      0x55
#define PWM_PERIOD_1    0xFF

#if 1
//duty/period:1/1
//#define PWM_DUTY_2      0x600
//#define PWM_PERIOD_2    0x900
#define PWM_DUTY_2      0x2
#define PWM_PERIOD_2    0x800
#else
//duty/period:1/1
#define PWM_DUTY_2      0xFF00
#define PWM_PERIOD_2    0xFFFF
#endif

//duty/perion:1/3
#define PWM_DUTY_3      0x15
#define PWM_PERIOD_3    0xFF


#define PWM_DUTY_4      0x77
#define PWM_PERIOD_4    0xFF


void pwm_init(void);

void hw_pwm_init (void);
void hw_pwm_open (void);
void hw_pwm_close (void);
void hw_pwm_fini (void);
void hw_pwm_duty_set (U16 duty, U16 period);

void hw_pwm_clk_set(U8 div);

#endif //_HW_PWM_H_