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
|
/*""FILE COMMENT""*******************************************************
* System Name : Multi-function Timer Pulse Unit API for RX62N
* File Name : r_pdl_MTU2_RX62Nxx.h
* Version : 1.02
* Contents : MTU2 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_MTU2_RX62Nxx_H
#define R_PDL_MTU2_RX62Nxx_H
#define MTU2_UNITS 2
#define MTU2_CHANNELS_PER_UNIT 6
#define MTU2_CHANNELS (uint8_t)(MTU2_UNITS * MTU2_CHANNELS_PER_UNIT)
/* Callback function storage */
extern VoidCallBackFunc rpdl_MTU2_func1_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_func2_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_func3_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_func4_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_TGRE_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_TGRF_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_Overflow_callback_func[MTU2_CHANNELS];
extern VoidCallBackFunc rpdl_MTU2_Underflow_callback_func[MTU2_CHANNELS];
typedef struct R_MTU2_Create_parameters
{
uint32_t data2;
uint32_t data3;
uint32_t data4;
uint16_t data5;
uint32_t data6;
uint32_t data7;
uint32_t data8;
uint16_t data9;
uint16_t data10;
uint16_t data11;
uint16_t data12;
uint16_t data13;
uint16_t data14;
uint16_t data15;
uint16_t data16;
uint16_t data17;
uint16_t data18;
VoidCallBackFunc func1;
VoidCallBackFunc func2;
VoidCallBackFunc func3;
VoidCallBackFunc func4;
uint8_t data19;
VoidCallBackFunc func5;
VoidCallBackFunc func6;
VoidCallBackFunc func7;
VoidCallBackFunc func8;
uint8_t data20;
} R_MTU2_Create_structure;
typedef struct R_MTU2_ControlChannel_parameters
{
uint8_t data2;
uint16_t data3;
uint16_t data4;
uint16_t data5;
uint16_t data6;
uint16_t data7;
uint16_t data8;
uint16_t data9;
uint16_t data10;
uint16_t data11;
uint16_t data12;
} R_MTU2_ControlChannel_structure;
typedef struct R_MTU2_ControlUnit_parameters
{
uint16_t data2;
uint32_t data3;
uint32_t data4;
uint16_t data5;
uint32_t data6;
uint8_t data7;
uint16_t data8;
uint16_t data9;
uint16_t data10;
} R_MTU2_ControlUnit_structure;
/* Library prototypes */
bool R_MTU2_SetAll(
const uint16_t
);
bool R_MTU2_CreateAll(
const uint8_t,
R_MTU2_Create_structure * const
);
bool R_MTU2_DestroyAll(
const uint8_t
);
bool R_MTU2_ControlChannelAll(
const uint8_t,
R_MTU2_ControlChannel_structure * const
);
bool R_MTU2_ControlUnitAll(
const uint8_t,
R_MTU2_ControlUnit_structure * const
);
bool R_MTU2_ReadChannelAll(
const uint8_t,
volatile uint8_t * const,
volatile uint16_t * const,
volatile uint16_t * const,
volatile uint16_t * const,
volatile uint16_t * const,
volatile uint16_t * const,
volatile uint16_t * const,
volatile uint16_t * const
);
bool R_MTU2_ReadUnitAll(
const uint8_t,
volatile uint16_t * const,
volatile uint8_t * const
);
bool ReturnFalse(void);
void R_MTU2_Create_load_defaults(R_MTU2_Create_structure * const);
/* Macro definitions */
#define R_MTU2_Set(a) \
( \
R_MTU2_SetAll( (a) ) \
)
#define R_MTU2_Create(a, b) \
( \
( (a) < MTU2_CHANNELS ) ? \
R_MTU2_CreateAll( (a), (b) ) : \
ReturnFalse() \
)
#define R_MTU2_ControlChannel(a, b) \
( \
( (a) < MTU2_CHANNELS ) ? \
R_MTU2_ControlChannelAll( (a), (b) ) : \
ReturnFalse() \
)
#define R_MTU2_ControlUnit(a, b) \
( \
( (a) < MTU2_UNITS ) ? \
R_MTU2_ControlUnitAll( (a), (b) ) : \
ReturnFalse() \
)
#define R_MTU2_ReadChannel(a, b, c, d, e, f, g, h, i) \
( \
( (a) < MTU2_CHANNELS ) ? \
R_MTU2_ReadChannelAll( (a), (b), (c), (d), (e), (f), (g), (h), (i) ) : \
ReturnFalse() \
)
#define R_MTU2_ReadUnit(a, b, c) \
( \
( (a) < MTU2_UNITS ) ? \
R_MTU2_ReadUnitAll( (a), (b), (c) ) : \
ReturnFalse() \
)
#define R_MTU2_Destroy(a) \
( \
( (a) < MTU2_UNITS ) ? \
R_MTU2_DestroyAll( (a) ) : \
ReturnFalse() \
)
#endif
/* End of file */
|