hw_pwm.h
837 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#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_