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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#ifndef TIMER_B_HEADER__
#define TIMER_B_HEADER__
/*
typedef char char_t;
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef signed long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef float float32_t;
typedef double float64_t;
*/
#include "r_typedefs.h"
typedef enum
{
TIMERB_HIGH = 0U,
TIMERB_LOW,
} TIMERB_Polarity_en_t;
typedef enum
{
TIMERB_FALL = 0U,
TIMERB_RISING,
TIMERB_RISING_FALL,
} TIMERB_Edge_en_t;
typedef enum
{
TIMERB_CLOCK_0 = 0U,
TIMERB_CLOCK_1,
TIMERB_CLOCK_2,
TIMERB_CLOCK_3,
} TIMERB_Clock_en_t;
typedef enum
{
TIMERB_0_CH0 = 0,
TIMERB_0_CH1,
TIMERB_0_CH2,
TIMERB_0_CH3,
TIMERB_0_CH4,
TIMERB_0_CH5,
TIMERB_0_CH6,
TIMERB_0_CH7,
TIMERB_0_CH8,
TIMERB_0_CH9,
TIMERB_0_CH10,
TIMERB_0_CH11,
TIMERB_0_CH12,
TIMERB_0_CH13,
TIMERB_0_CH14,
TIMERB_0_CH15,
TIMERB_1_CH0,
TIMERB_1_CH1,
TIMERB_1_CH2,
TIMERB_1_CH3,
TIMERB_1_CH4,
TIMERB_1_CH5,
TIMERB_1_CH6,
TIMERB_1_CH7,
TIMERB_1_CH8,
TIMERB_1_CH9,
TIMERB_1_CH10,
TIMERB_1_CH11,
TIMERB_1_CH12,
TIMERB_1_CH13,
TIMERB_1_CH14,
TIMERB_1_CH15,
TIMERB_2_CH0,
TIMERB_2_CH1,
TIMERB_2_CH2,
TIMERB_2_CH3,
TIMERB_2_CH4,
TIMERB_2_CH5,
TIMERB_2_CH6,
TIMERB_2_CH7,
TIMERB_2_CH8,
TIMERB_2_CH9,
TIMERB_2_CH10,
TIMERB_2_CH11,
TIMERB_2_CH12,
TIMERB_2_CH13,
TIMERB_2_CH14,
TIMERB_2_CH15,
} TIMERB_Channel_en_t;
/*-----------------------------------------*/
extern void TimerB_PWM_Init(void);
extern uint8_t TimerB_PWM_Channel_Init(TIMERB_Channel_en_t enTimerBChannel, TIMERB_Clock_en_t enTimerBClock, TIMERB_Polarity_en_t enTimerBPolarity);
extern uint32_t TimerB_PWM_Channel_Fre_Set(TIMERB_Channel_en_t enTimerBChannel, uint16_t u16Fre, uint16_t u16Duty);/*设置频率*/
/*占空比精度千分之一*/
extern void TimerB_PWM_Channel_Duty_Set(TIMERB_Channel_en_t enTimerBChannel, uint16_t u16Duty);/*设置占空比*/
extern void TimerB_PWM_Channel_Start(TIMERB_Channel_en_t enTimerBChannel);
/*调用该函数后,仅重新调用开始函数功能即可正常使用*/
extern void TimerB_PWM_Channel_Stop(TIMERB_Channel_en_t enTimerBChannel);
/*仅休眠时可调用,调用该函数后需要重新初始化相关通道才可以正常使用。*/
extern void TimerB_PWM_Channel_Sleep(TIMERB_Channel_en_t enTimerBChannel);
/*--------------------------------------------*/
extern void TimerB_Overflow_Isr(void);
extern void TimerB_Input_Isr(TIMERB_Channel_en_t enTimerBChannel);
extern void TimerB_Input_Channel_Stop(TIMERB_Channel_en_t enTimerBChannel);
extern void TimerB_Input_Channel_Start(TIMERB_Channel_en_t enTimerBChannel);
extern void TimerB_Input_Channel_Init(TIMERB_Channel_en_t enTimerBChannel, TIMERB_Clock_en_t enTimerBClock, TIMERB_Edge_en_t enTimerBEdge);
/*----------------------------------------------------------*/
extern void TimerB_Fre_Timeout(uint8_t Time);
extern uint16_t Get_Veh_Fre(void);
extern uint8_t Get_Veh_Fre_Event(void) ;
extern void TimerB_Buzzer_Init(void);
#endif