123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- /*
- *******************************************************************************
- * 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
|