summaryrefslogtreecommitdiff
path: root/bsp/upd70f3454/drivers/CG_timer.h
blob: 46c817d97e355301103a162e1bbd9bf8875265cf (plain)
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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
/*
*******************************************************************************
* Copyright(C) NEC Electronics Corporation 2010
* All rights reserved by NEC Electronics Corporation.
* This program should be used on your own responsibility.
* NEC Electronics Corporation assumes no responsibility for any losses
* incurred by customers or third parties arising from the use of this file.
*
* This device driver was created by Applilet3 for V850ES/Jx3
* 32-Bit Single-Chip Microcontrollers
* Filename:	CG_timer.h
* Abstract:	This file implements device driver for Timer module.
* APIlib:	Applilet3 for V850ES/Jx3 V2.01 [20 Apr 2010]
* Device:	uPD70F3746
* Compiler:	IAR Systems ICCV850
* Creation date:	6/26/2010
*******************************************************************************
*/

#ifndef _MDTIMER_
#define _MDTIMER_
/*
*******************************************************************************
**  Register bit define
*******************************************************************************
*/
/* 
	TMP control register 0 (TPnCTL0)
*/
/* TMP operation control (TPnCE) */
#define	_00_TMP_OPERATION_DISABLE		0x00U	/* disable internal operating clock operation (asynchronously reset TMPn) */
#define	_80_TMP_OPERATION_ENABLE		0x80U	/* enable internal operating clock operation */
/* Internal count clock selection (TPnCKS2 - TPnCKS0) */
#define	_00_TMP_INTERNAL_CLOCK0			0x00U	/* fXX */
#define	_01_TMP_INTERNAL_CLOCK1			0x01U	/* fXX/2 */
#define	_02_TMP_INTERNAL_CLOCK2			0x02U	/* fXX/2^2 */
#define	_03_TMP_INTERNAL_CLOCK3			0x03U	/* fXX/2^3 */
#define	_04_TMP_INTERNAL_CLOCK4			0x04U	/* fXX/2^4 */
#define	_05_TMP_INTERNAL_CLOCK5			0x05U	/* fXX/2^5 */
#define	_06_TMP_INTERNAL_CLOCK6			0x06U	/* fXX/2^6 or fXX/2^8 */
#define	_07_TMP_INTERNAL_CLOCK7			0x07U	/* fXX/2^7 or fXX/2^9 */

/* 
	TMP control register 1 (TPnCTL1)
*/
/* Software trigger control (TPnEST) */
#define	_00_TMP_SOFTTRIGGER_OFF			0x00U	/* no operation */
#define	_40_TMP_SOFTTRIGGER_ON			0x40U	/* in one-shot pulse mode: One-shot pulse software trigger */
											/* in external trigger pulse output mode: Pulse output software trigger */
/* Count clock selection (TPnEEE) */
#define	_00_TMP_INTERNAL_CLOCK			0x00U	/* use the internal clock (clock selected with bits TPnCKS2 to TPnCKS0) */
#define	_20_TMP_EXTERNAL_CLOCK			0x20U	/* use the external clock from the TIPn0 input pin */ 
/* Timer mode selection (TPnMD2 - TPnMD0) */
#define	_00_TMP_MODE_INTERVAL			0x00U	/* interval timer mode */
#define	_01_TMP_MODE_EXTERNALCOUNT		0x01U	/* external event counter mode */
#define	_02_TMP_MODE_EXTERNALTRG		0x02U	/* external trigger pulse output mode */
#define	_03_TMP_MODE_ONESHOT			0x03U	/* one-shot pulse mode */
#define	_04_TMP_MODE_PWM			0x04U	/* PWM mode */
#define	_05_TMP_MODE_FREERUNNING		0x05U	/* free-running mode */
#define	_06_TMP_MODE_PULSEMEASURE		0x06U	/* pulse width measurement mode */

/* 
	TMP I/O control register 0 (TPnIOC0)
*/
/* TOPn0 pin output level setting (TPnOL0) */
#define	_00_TMP_OUTPUT0_NORMAL			0x00U	/* normal output */
#define	_02_TMP_OUTPUT0_INVERTED		0x02U	/* inverted output */
/* TOPn0 pin output setting (TPnOE0) */
#define	_00_TMP_OUTPUT0_DISABLE			0x00U	/* disable timer output */
#define	_01_TMP_OUTPUT0_ENABLE			0x01U	/* enable timer output (TOPn0 pin outputs pulses) */
/* TOPn1 pin output level setting (TPnOL1) */
#define	_00_TMP_OUTPUT1_NORMAL			0x00U	/* normal output */
#define	_08_TMP_OUTPUT1_INVERTED		0x08U	/* inverted output */
/* TOPn1 pin output setting (TPnOE1) */
#define	_00_TMP_OUTPUT1_DISABLE			0x00U	/* disable timer output */
#define	_04_TMP_OUTPUT1_ENABLE			0x04U	/* enable timer output (TOPn1 pin outputs pulses) */

/* 
	TMP I/O control register 1 (TPnIOC1)
*/
/* Capture trigger input signal (TIPn1 pin) valid edge setting (TPnIS3,TPnIS2) */
#define	_00_TMP_INPUT1_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_04_TMP_INPUT1_EDGE_RISING		0x04U	/* detection of rising edge */
#define	_08_TMP_INPUT1_EDGE_FALLING		0x08U	/* detection of falling edge */
#define	_0C_TMP_INPUT1_EDGE_BOTH		0x0CU	/* detection of both edges */
/* Capture trigger input signal (TIPn0 pin) valid edge setting (TPnIS1,TPnIS0) */
#define	_00_TMP_INPUT0_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_01_TMP_INPUT0_EDGE_RISING		0x01U	/* detection of rising edge */
#define	_02_TMP_INPUT0_EDGE_FALLING		0x02U	/* detection of falling edge */
#define	_03_TMP_INPUT0_EDGE_BOTH		0x03U	/* detection of both edges */

/* 
	TMP I/O control register 2 (TPnIOC2)
*/
/* External event count input signal (TIPn0 pin) valid edge setting (TPnEES1,TPnEES0) */
#define	_00_TMP_EXTCOUNT_EDGE_NONE		0x00U	/* detect no edge (external event count is invalid) */
#define	_04_TMP_EXTCOUNT_EDGE_RISING		0x04U	/* detection of rising edge */
#define	_08_TMP_EXTCOUNT_EDGE_FALLING		0x08U	/* detection of falling edge */
#define	_0C_TMP_EXTCOUNT_EDGE_BOTH		0x0CU	/* detection of both edges */
/* External trigger input signal (TIPn0 pin) valid edge setting (TPnETS1,TPnETS0) */
#define	_00_TMP_EXTTRIGGER_EDGE_NONE		0x00U	/* detect no edge (external trigger is invalid) */
#define	_01_TMP_EXTTRIGGER_EDGE_RISING		0x01U	/* detection of rising edge */
#define	_02_TMP_EXTTRIGGER_EDGE_FALLING		0x02U	/* detection of falling edge */
#define	_03_TMP_EXTTRIGGER_EDGE_BOTH		0x03U	/* detection of both edges */

/* 
	TMP option register 0 (TPnOPT0)
*/
/* TPnCCR1 register capture/compare selection (TPnCCS1) */
#define	_00_TMP_CCR1_COMPARE			0x00U	/* compare register */
#define	_20_TMP_CCR1_CAPTURE			0x20U	/* capture register */
/* TPnCCR0 register capture/compare selection (TPnCCS0) */
#define	_00_TMP_CCR0_COMPARE			0x00U	/* compare register */
#define	_10_TMP_CCR0_CAPTURE			0x10U	/* capture register */
/* TMPn overflow detection flag (TPnOVF) */
#define _01_TMP_OVERFLOW_OCCUR			0x01U	/* overflow occurred */
#define _00_TMP_OVERFLOW_CLEAR			0x00U	/* clear overflow */

/* 
	TMQ0 control register 0 (TQ0CTL0)
*/
/* TMQ operation control (TQ0CE) */
#define	_00_TMQ_OPERATION_DISABLE		0x00U	/* disable internal operating clock operation (asynchronously reset TMQ0) */
#define	_80_TMQ_OPERATION_ENABLE		0x80U	/* enable internal operating clock operation */
/* Internal count clock selection (TQ0CKS2 - TQ0CKS0) */
#define	_00_TMQ_INTERNAL_CLOCK0			0x00U	/* fXX */
#define	_01_TMQ_INTERNAL_CLOCK1			0x01U	/* fXX/2 */
#define	_02_TMQ_INTERNAL_CLOCK2			0x02U	/* fXX/2^2 */
#define	_03_TMQ_INTERNAL_CLOCK3			0x03U	/* fXX/2^3 */
#define	_04_TMQ_INTERNAL_CLOCK4			0x04U	/* fXX/2^4 */
#define	_05_TMQ_INTERNAL_CLOCK5			0x05U	/* fXX/2^5 */
#define	_06_TMQ_INTERNAL_CLOCK6			0x06U	/* fXX/2^6 */
#define	_07_TMQ_INTERNAL_CLOCK7			0x07U	/* fXX/2^7 */

/* 
	TMQ0 control register 1 (TQ0CTL1)
*/
/* Software trigger control (TQ0EST) */
#define	_00_TMQ_SOFTTRIGGER_OFF			0x00U	/* no operation */
#define	_40_TMQ_SOFTTRIGGER_ON			0x40U	/* in one-shot pulse mode: One-shot pulse software trigger */
											/* in external trigger pulse output mode: Pulse output software trigger */
/* Count clock selection (TQ0EEE) */
#define	_00_TMQ_INTERNAL_CLOCK			0x00U	/* use the internal clock (clock selected with bits TQ0CKS2 to TQ0CKS0) */
#define	_20_TMQ_EXTERNAL_CLOCK			0x20U	/* use the external clock from the TIQ00 input pin */ 
/* Timer mode selection (TQ0MD2 - TQ0MD0) */
#define	_00_TMQ_MODE_INTERVAL			0x00U	/* interval timer mode */
#define	_01_TMQ_MODE_EXTERNALCOUNT		0x01U	/* external event counter mode */
#define	_02_TMQ_MODE_EXTERNALTRG		0x02U	/* external trigger pulse output mode */
#define	_03_TMQ_MODE_ONESHOT			0x03U	/* one-shot pulse mode */
#define	_04_TMQ_MODE_PWM			0x04U	/* PWM mode */
#define	_05_TMQ_MODE_FREERUNNING		0x05U	/* free-running mode */
#define	_06_TMQ_MODE_PULSEMEASURE		0x06U	/* pulse width measurement mode */

/* 
	TMQ0 I/O control register 0 (TQ0IOC0)
*/
/* TOQ00 pin output level setting (TQ0OL0) */
#define	_00_TMQ_OUTPUT0_NORMAL			0x00U	/* normal output */
#define	_02_TMQ_OUTPUT0_INVERTED		0x02U	/* inverted output */
/* TOQ00 pin output setting (TQ0OE0) */
#define	_00_TMQ_OUTPUT0_DISABLE			0x00U	/* disable timer output */
#define	_01_TMQ_OUTPUT0_ENABLE			0x01U	/* enable timer output (TOQ00 pin outputs pulses) */
/* TOQ01 pin output level setting (TQ0OL1) */
#define	_00_TMQ_OUTPUT1_NORMAL			0x00U	/* normal output */
#define	_08_TMQ_OUTPUT1_INVERTED		0x08U	/* inverted output */
/* TOQ01 pin output setting (TQ0OE1) */
#define	_00_TMQ_OUTPUT1_DISABLE			0x00U	/* disable timer output */
#define	_04_TMQ_OUTPUT1_ENABLE			0x04U	/* enable timer output (TOQ01 pin outputs pulses) */
/* TOQ02 pin output level setting (TQ0OL2) */
#define	_00_TMQ_OUTPUT2_NORMAL			0x00U	/* normal output */
#define	_20_TMQ_OUTPUT2_INVERTED		0x20U	/* inverted output */
/* TOQ02 pin output setting (TQ0OE2) */
#define	_00_TMQ_OUTPUT2_DISABLE			0x00U	/* disable timer output */
#define	_10_TMQ_OUTPUT2_ENABLE			0x10U	/* enable timer output (TOQ02 pin outputs pulses) */
/* TOQ03 pin output level setting (TQ0OL3) */
#define	_00_TMQ_OUTPUT3_NORMAL			0x00U	/* normal output */
#define	_80_TMQ_OUTPUT3_INVERTED		0x80U	/* inverted output */
/* TOQ03 pin output setting (TQ0OE3) */
#define	_00_TMQ_OUTPUT3_DISABLE			0x00U	/* disable timer output */
#define	_40_TMQ_OUTPUT3_ENABLE			0x40U	/* enable timer output (TOQ03 pin outputs pulses) */

/* 
	TMQ0 I/O control register 1 (TQ0IOC1)
*/
/* Capture trigger input signal (TIQ00 pin) valid edge setting (TQ0IS1,TQ0IS0) */
#define	_00_TMQ_INPUT0_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_01_TMQ_INPUT0_EDGE_RISING		0x01U	/* detection of rising edge */
#define	_02_TMQ_INPUT0_EDGE_FALLING		0x02U	/* detection of falling edge */
#define	_03_TMQ_INPUT0_EDGE_BOTH		0x03U	/* detection of both edges */
/* Capture trigger input signal (TIQ01 pin) valid edge setting (TQ0IS3,TQ0IS2) */
#define	_00_TMQ_INPUT1_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_04_TMQ_INPUT1_EDGE_RISING		0x04U	/* detection of rising edge */
#define	_08_TMQ_INPUT1_EDGE_FALLING		0x08U	/* detection of falling edge */
#define	_0C_TMQ_INPUT1_EDGE_BOTH		0x0CU	/* detection of both edges */
/* Capture trigger input signal (TIQ02 pin) valid edge setting (TQ0IS5,TQ0IS4) */
#define	_00_TMQ_INPUT2_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_10_TMQ_INPUT2_EDGE_RISING		0x10U	/* detection of rising edge */
#define	_20_TMQ_INPUT2_EDGE_FALLING		0x20U	/* detection of falling edge */
#define	_30_TMQ_INPUT2_EDGE_BOTH		0x30U	/* detection of both edges */
/* Capture trigger input signal (TIQ03 pin) valid edge setting (TQ0IS7,TQ0IS6) */
#define	_00_TMQ_INPUT3_EDGE_NONE		0x00U	/* detect no edge (capture operation is invalid) */
#define	_40_TMQ_INPUT3_EDGE_RISING		0x40U	/* detection of rising edge */
#define	_80_TMQ_INPUT3_EDGE_FALLING		0x80U	/* detection of falling edge */
#define	_C0_TMQ_INPUT3_EDGE_BOTH		0xC0U	/* detection of both edges */

/* 
	TMQ0 I/O control register 2 (TQ0IOC2)
*/
/* External event count input signal (TIQ00 pin) valid edge setting (TQ0EES1,TQ0EES0) */
#define	_00_TMQ_EXTCOUNT_EDGE_NONE		0x00U	/* detect no edge (external event count is invalid) */
#define	_04_TMQ_EXTCOUNT_EDGE_RISING		0x04U	/* detection of rising edge */
#define	_08_TMQ_EXTCOUNT_EDGE_FALLING		0x08U	/* detection of falling edge */
#define	_0C_TMQ_EXTCOUNT_EDGE_BOTH		0x0CU	/* detection of both edges */
/* External trigger input signal (TIQ00 pin) valid edge setting (TQ0ETS1,TQ0ETS0) */
#define	_00_TMQ_EXTTRIGGER_EDGE_NONE		0x00U	/* detect no edge (external trigger is invalid) */
#define	_01_TMQ_EXTTRIGGER_EDGE_RISING		0x01U	/* detection of rising edge */
#define	_02_TMQ_EXTTRIGGER_EDGE_FALLING		0x02U	/* detection of falling edge */
#define	_03_TMQ_EXTTRIGGER_EDGE_BOTH		0x03U	/* detection of both edges */

/* 
	TMQ0 option register 0 (TQ0OPT0)
*/
/* TQ0CCR3 register capture/compare selection (TQ0CCS3) */
#define	_00_TMQ_CCR3_COMPARE			0x00U	/* compare register */
#define	_80_TMQ_CCR3_CAPTURE			0x80U	/* capture register */
/* TQ0CCR2 register capture/compare selection (TQ0CCS2) */
#define	_00_TMQ_CCR2_COMPARE			0x00U	/* compare register */
#define	_40_TMQ_CCR2_CAPTURE			0x40U	/* capture register */
/* TQ0CCR1 register capture/compare selection (TQ0CCS1) */
#define	_00_TMQ_CCR1_COMPARE			0x00U	/* compare register */
#define	_20_TMQ_CCR1_CAPTURE			0x20U	/* capture register */
/* TQ0CCR0 register capture/compare selection (TQ0CCS0) */
#define	_00_TMQ_CCR0_COMPARE			0x00U	/* compare register */
#define	_10_TMQ_CCR0_CAPTURE			0x10U	/* capture register */
/* TMQ0 overflow detection flag (TQ0OVF) */
#define _01_TMQ_OVERFLOW_OCCUR			0x01U	/* overflow occurred */
#define _00_TMQ_OVERFLOW_CLEAR			0x00U	/* clear overflow */

/* 
	TMM0 control register 0 (TM0CTL0)
*/
/* TMM0 operation control (TM0CE) */
#define	_00_TMM_OPERATION_DISABLE		0x00U	/* disable internal operating clock operation (asynchronously reset TMM0) */
#define	_80_TMM_OPERATION_ENABLE		0x80U	/* enable internal operating clock operation */
/* Internal count clock selection (TM0CKS2 - TM0CKS0) */
#define	_00_TMM_INTERNAL_CLOCK0			0x00U	/* fXX */
#define	_01_TMM_INTERNAL_CLOCK1			0x01U	/* fXX/2 */
#define	_02_TMM_INTERNAL_CLOCK2			0x02U	/* fXX/4 */
#define	_03_TMM_INTERNAL_CLOCK3			0x03U	/* fXX/64 */
#define	_04_TMM_INTERNAL_CLOCK4			0x04U	/* fXX/512 */
#define	_05_TMM_INTERNAL_CLOCK5			0x05U	/* INTWT */
#define	_06_TMM_INTERNAL_CLOCK6			0x06U	/* fR/8 */
#define	_07_TMM_INTERNAL_CLOCK7			0x07U	/* fXT */
/*
*******************************************************************************
**  Macro define
*******************************************************************************
*/
/* TMP0 compare register 0 (TP0CCR0)*/
#define _9C3F_TMP0_CCR0_VALUE			0x9C3FU
enum TMChannel
{
	TMCHANNEL0, TMCHANNEL1, TMCHANNEL2, TMCHANNEL3
};
/*
*******************************************************************************
**  Function define
*******************************************************************************
*/
void TAB0_Init(void);
void TAB0_Start(void);
void TAB0_Stop(void);
MD_STATUS TAB0_ChangeTimerCondition(USHORT *array_reg, UCHAR array_num);
__interrupt void MD_INTTP0CC0(void);

/* Start user code for function. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
#endif