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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
/*""FILE COMMENT""*******************************************************
* System Name : Timer TMR API for RX62Nxx
* File Name : r_pdl_tmr.h
* Version : 1.02
* Contents : Timer TMR API header
* Customer :
* Model :
* Order :
* CPU : RX
* Compiler : RXC
* OS : Nothing
* Programmer :
* Note :
************************************************************************
* Copyright, 2011. Renesas Electronics Corporation
* and Renesas Solutions Corporation
************************************************************************
* History : 2011.04.08
* : Ver 1.02
* : CS-5 release.
*""FILE COMMENT END""**************************************************/
#ifndef R_PDL_TMR_H
#define R_PDL_TMR_H
#include "r_pdl_common_defs_RX62Nxx.h"
/* Function prototypes */
bool R_TMR_Set(
uint8_t
);
bool R_TMR_CreateChannel(
uint8_t,
uint32_t,
uint8_t,
uint8_t,
uint8_t,
uint8_t,
void *,
void *,
void *,
uint8_t
);
bool R_TMR_CreateUnit(
uint8_t,
uint32_t,
uint8_t,
uint16_t,
uint16_t,
uint16_t,
void *,
void *,
void *,
uint8_t
);
bool R_TMR_CreatePeriodic(
uint8_t,
uint32_t,
float,
float,
void *,
void *,
uint8_t
);
bool R_TMR_CreateOneShot(
uint8_t,
uint32_t,
float,
void *,
uint8_t
);
bool R_TMR_Destroy(
uint8_t
);
bool R_TMR_ControlChannel(
uint8_t,
uint32_t,
uint8_t,
uint8_t,
uint8_t
);
bool R_TMR_ControlUnit(
uint8_t,
uint32_t,
uint16_t,
uint16_t,
uint16_t
);
bool R_TMR_ControlPeriodic(
uint8_t,
uint32_t,
float,
float
);
bool R_TMR_ReadChannel(
uint8_t,
uint8_t *,
uint8_t *,
uint8_t *,
uint8_t *
);
bool R_TMR_ReadUnit(
uint8_t,
uint8_t *,
uint16_t *,
uint16_t *,
uint16_t *
);
/* Pin selection */
#define PDL_TMR_PIN_TMR0_A 0x01u
#define PDL_TMR_PIN_TMR0_B 0x02u
#define PDL_TMR_PIN_TMR1_A 0x04u
#define PDL_TMR_PIN_TMR1_B 0x08u
#define PDL_TMR_PIN_TMR2_A 0x10u
#define PDL_TMR_PIN_TMR2_B 0x20u
#define PDL_TMR_PIN_TMR3_A 0x40u
#define PDL_TMR_PIN_TMR3_B 0x80u
/* Counter clock sources */
#define PDL_TMR_CLK_OFF 0x00000001ul
#define PDL_TMR_CLK_EXT_RISING 0x00000002ul
#define PDL_TMR_CLK_EXT_FALLING 0x00000004ul
#define PDL_TMR_CLK_EXT_BOTH 0x00000008ul
#define PDL_TMR_CLK_PCLK_DIV_1 0x00000010ul
#define PDL_TMR_CLK_PCLK_DIV_2 0x00000020ul
#define PDL_TMR_CLK_PCLK_DIV_8 0x00000040ul
#define PDL_TMR_CLK_PCLK_DIV_32 0x00000080ul
#define PDL_TMR_CLK_PCLK_DIV_64 0x00000100ul
#define PDL_TMR_CLK_PCLK_DIV_1024 0x00000200ul
#define PDL_TMR_CLK_PCLK_DIV_8192 0x00000400ul
#define PDL_TMR_CLK_TMR1_OVERFLOW 0x00000800ul
#define PDL_TMR_CLK_TMR3_OVERFLOW 0x00001000ul
#define PDL_TMR_CLK_TMR0_CM_A 0x00002000ul
#define PDL_TMR_CLK_TMR2_CM_A 0x00004000ul
/* A/D trigger control */
#define PDL_TMR_ADC_TRIGGER_DISABLE 0x00008000ul
#define PDL_TMR_ADC_TRIGGER_ENABLE 0x00010000ul
/* Counter clearing options */
#define PDL_TMR_CLEAR_DISABLE 0x00020000ul
#define PDL_TMR_CLEAR_CM_A 0x00040000ul
#define PDL_TMR_CLEAR_CM_B 0x00080000ul
#define PDL_TMR_CLEAR_RESET_RISING 0x00100000ul
#define PDL_TMR_CLEAR_RESET_HIGH 0x00200000ul
/* DTC CMA trigger control */
#define PDL_TMR_CM_A_DTC_TRIGGER_DISABLE 0x00400000ul
#define PDL_TMR_CM_A_DTC_TRIGGER_ENABLE 0x00800000ul
/* DTC CMB trigger control */
#define PDL_TMR_CM_B_DTC_TRIGGER_DISABLE 0x01000000ul
#define PDL_TMR_CM_B_DTC_TRIGGER_ENABLE 0x02000000ul
/* Output control options */
#define PDL_TMR_OUTPUT_IGNORE_CM_A 0x01u
#define PDL_TMR_OUTPUT_LOW_CM_A 0x02u
#define PDL_TMR_OUTPUT_HIGH_CM_A 0x04u
#define PDL_TMR_OUTPUT_INV_CM_A 0x08u
#define PDL_TMR_OUTPUT_IGNORE_CM_B 0x10u
#define PDL_TMR_OUTPUT_LOW_CM_B 0x20u
#define PDL_TMR_OUTPUT_HIGH_CM_B 0x40u
#define PDL_TMR_OUTPUT_INV_CM_B 0x80u
/* Channels and units */
#define PDL_TMR_TMR0 0
#define PDL_TMR_TMR1 1
#define PDL_TMR_TMR2 2
#define PDL_TMR_TMR3 3
#define PDL_TMR_UNIT0 4
#define PDL_TMR_UNIT1 5
/* Period or frequency selection */
#define PDL_TMR_PERIOD 0x00000001ul
#define PDL_TMR_FREQUENCY 0x00000002ul
/* Output pin control */
#define PDL_TMR_OUTPUT_HIGH 0x00000004ul
#define PDL_TMR_OUTPUT_LOW 0x00000008ul
#define PDL_TMR_OUTPUT_OFF 0x00000010ul
#define PDL_TMR_OUTPUT_ENABLE 0x00000020ul
#define PDL_TMR_OUTPUT_DISABLE 0x00000040ul
/* ADC trigger control */
#define PDL_TMR_ADC_TRIGGER_ON 0x00000080ul
#define PDL_TMR_ADC_TRIGGER_OFF 0x00000100ul
/* Pulse DTC trigger control */
#define PDL_TMR_PULSE_DTC_TRIGGER_DISABLE 0x00000200ul
#define PDL_TMR_PULSE_DTC_TRIGGER_ENABLE 0x00000400ul
/* Period DTC trigger control */
#define PDL_TMR_PERIOD_DTC_TRIGGER_DISABLE 0x00000800ul
#define PDL_TMR_PERIOD_DTC_TRIGGER_ENABLE 0x00001000ul
/* CPU control */
#define PDL_TMR_CPU_ON 0x00002000ul
#define PDL_TMR_CPU_OFF 0x00004000ul
/* Timer counter control */
#define PDL_TMR_STOP 0x00008000ul
#define PDL_TMR_START 0x00010000ul
/* Register selections */
#define PDL_TMR_COUNTER 0x00020000ul
#define PDL_TMR_TIME_CONSTANT_A 0x00040000ul
#define PDL_TMR_TIME_CONSTANT_B 0x00080000ul
#endif
/* End of file */
|