
A-2
Using the SC140 Enhanced OnCE Stopwatch Timer
Code A-2. EOnCE_registers.h
/* EOnCE registers */
#define EXCP_TABLE 0x7000
#define REG_BASE_ADDRESS 0x00effe00 /* EOnCE Status register */
#ifdef COMPILER_BETA_1_BUG
long EE_CTRL = REG_BASE_0x18; /* EOnCE EE pins Control register */
long EDCA1_CTRL = REG_BASE_0x44; /* EOnCE EDCA #1 Control register */
long EDCA1_REFA = REG_BASE_0x64; /* EOnCE EDCA #1 Reference Value A */
long EDCA1_REFB = REG_BASE_0x84; /* EOnCE EDCA #1 Reference Value B */
long EDCA1_MASK = REG_BASE_0xc4; /* EOnCE EDCA #1 Mask Register */
long ECNT_CTRL = REG_BASE_0x100; /* EOnCE Counter Control register */
long ECNT_VAL = REG_BASE_0x104; /* EOnCE Counter Value register */
long ECNT_EXT = REG_BASE_0x108; /* EOnCE Extension Counter Value */
#else
#define EMCR REG_BASE_0x4 /* EOnCE Monitor and Control register */
#define ERCV REG_BASE_0x8 /* EOnCE Receive register */
#define ETRSMT0 REG_BASE_0x10 /* EOnCE Receive register */
#define ETRSMT1 REG_BASE_0x14 /* EOnCE Receive register */
#define EE_CTRL REG_BASE_0x18 /* EOnCE EE pins Control register */
#define PC_EX REG_BASE_0x1c /* EOnCE Exception PC register */
#define EDCA0_CTRL REG_BASE_0x40 /* EOnCE EDCA #0 Control register */
#define EDCA1_CTRL REG_BASE_0x44 /* EOnCE EDCA #1 Control register */
#define EDCA2_CTRL REG_BASE_0x48 /* EOnCE EDCA #2 Control register */
#define EDCA3_CTRL REG_BASE_0x4c /* EOnCE EDCA #3 Control register */
#define EDCA4_CTRL REG_BASE_0x50 /* EOnCE EDCA #4 Control register */
#define EDCA5_CTRL REG_BASE_0x54 /* EOnCE EDCA #5 Control register */
#define EDCA0_REFA REG_BASE_0x60 /* EOnCE EDCA #0 Reference Value A */
#define EDCA1_REFA REG_BASE_0x64 /* EOnCE EDCA #1 Reference Value A */
#define EDCA2_REFA REG_BASE_0x68 /* EOnCE EDCA #2 Reference Value A */
#define EDCA3_REFA REG_BASE_0x6c /* EOnCE EDCA #3 Reference Value A */
#define EDCA4_REFA REG_BASE_0x70 /* EOnCE EDCA #4 Reference Value A */
#define EDCA5_REFA REG_BASE_0x74 /* EOnCE EDCA #5 Reference Value A */
#define EDCA0_REFB REG_BASE_0x80 /* EOnCE EDCA #0 Reference Value B */
#define EDCA1_REFB REG_BASE_0x84 /* EOnCE EDCA #1 Reference Value B */
#define EDCA2_REFB REG_BASE_0x88 /* EOnCE EDCA #2 Reference Value B */
#define EDCA3_REFB REG_BASE_0x8c /* EOnCE EDCA #3 Reference Value B */
#define EDCA4_REFB REG_BASE_0x90 /* EOnCE EDCA #4 Reference Value B */
#define EDCA5_REFB REG_BASE_0x94 /* EOnCE EDCA #5 Reference Value B */
#define EDCA0_MASK REG_BASE_0xc0 /* EOnCE EDCA #0 Mask Register */
#define EDCA1_MASK REG_BASE_0xc4 /* EOnCE EDCA #1 Mask Register */
#define EDCA2_MASK REG_BASE_0xc8 /* EOnCE EDCA #2 Mask Register */
#define EDCA3_MASK REG_BASE_0xcc /* EOnCE EDCA #3 Mask Register */
#define EDCA4_MASK REG_BASE_0xd0 /* EOnCE EDCA #4 Mask Register */
#define EDCA5_MASK REG_BASE_0xd4 /* EOnCE EDCA #5 Mask Register */
#define EDCD_CTRL REG_BASE_0xe0 /* EOnCE EDCD Control register */
#define EDCD_REF REG_BASE_0xe4 /* EOnCE EDCD Reference Value */
#define EDCD_MASK REG_BASE_0xe8 /* EOnCE EDCD Mask register */
#define ECNT_CTRL REG_BASE_0x100 /* EOnCE Counter Control register */
#define ECNT_VAL REG_BASE_0x104 /* EOnCE Counter Value register */
#define ECNT_EXT REG_BASE_0x108 /* EOnCE Extension Counter Value */
#define ESEL_CTRL REG_BASE_0x120 /* EOnCE Selector Control register */
#define ESEL_DM REG_BASE_0x124 /* EOnCE Selector DM Mask */
#define ESEL_DI REG_BASE_0x128 /* EOnCE Selector DI Mask */
#define ESEL_RST REG_BASE_0x12c /* EOnCE Selector RST Mask */
#define ESEL_ETB REG_BASE_0x130 /* EOnCE Selector ETB Mask */
#define ESEL_DTB REG_BASE_0x134 /* EOnCE Selector DTB Mask */
#define TB_CTRL REG_BASE_0x140 /* EOnCE Trace Buffer Control register */
#define TB_RD REG_BASE_0x144 /* EOnCE Trace Buffer Read Pointer */
#define TB_WR REG_BASE_0x148 /* EOnCE Trace Buffer Write Pointer */
#define TB_BUFF REG_BASE_0x14c /* EOnCE Trace Buffer */
#define TRAP_EXCP EXCP_TABLE /* trap instruction exception */
#define ILL_EXCP EXC0x80 /* illegal set or illegal instruction exception */
#define DBG_EXCP EXC0xc0 /* debug exception (eonce) */
#define OVFL_EXCP EXC0x100 /* overflow exception */
#define AUTO_NMI_EXCP EXC0x180 /* default nmi exception vector */
#define AUTO_EXT_EXCP EXC0x1c0 /* default external exception */
#define NMI_EXCP EXC0x280 /* nmi exception vector (arbitrary address) */
#define EXT_EXCP EXC0x2c0 /* external exception (arbitrary address) */
#endif