1 |
2 |
qaztronic |
// ***********************************************************************
|
2 |
|
|
//
|
3 |
|
|
// LPC210X.H: Header file for Philips LPC2104 / LPC2105 / LPC2106
|
4 |
|
|
//
|
5 |
|
|
// ***********************************************************************
|
6 |
|
|
|
7 |
|
|
#ifndef __LPC22xx_H
|
8 |
|
|
#define __LPC22xx_H
|
9 |
|
|
|
10 |
|
|
/* Vectored Interrupt Controller (VIC) */
|
11 |
|
|
#define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000))
|
12 |
|
|
#define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004))
|
13 |
|
|
#define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008))
|
14 |
|
|
#define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C))
|
15 |
|
|
#define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010))
|
16 |
|
|
#define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014))
|
17 |
|
|
#define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018))
|
18 |
|
|
#define VICSoftIntClr (*((volatile unsigned long *) 0xFFFFF01C))
|
19 |
|
|
#define VICProtection (*((volatile unsigned long *) 0xFFFFF020))
|
20 |
|
|
#define VICVectAddr (*((volatile unsigned long *) 0xFFFFF030))
|
21 |
|
|
#define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034))
|
22 |
|
|
#define VICVectAddr0 (*((volatile unsigned long *) 0xFFFFF100))
|
23 |
|
|
#define VICVectAddr1 (*((volatile unsigned long *) 0xFFFFF104))
|
24 |
|
|
#define VICVectAddr2 (*((volatile unsigned long *) 0xFFFFF108))
|
25 |
|
|
#define VICVectAddr3 (*((volatile unsigned long *) 0xFFFFF10C))
|
26 |
|
|
#define VICVectAddr4 (*((volatile unsigned long *) 0xFFFFF110))
|
27 |
|
|
#define VICVectAddr5 (*((volatile unsigned long *) 0xFFFFF114))
|
28 |
|
|
#define VICVectAddr6 (*((volatile unsigned long *) 0xFFFFF118))
|
29 |
|
|
#define VICVectAddr7 (*((volatile unsigned long *) 0xFFFFF11C))
|
30 |
|
|
#define VICVectAddr8 (*((volatile unsigned long *) 0xFFFFF120))
|
31 |
|
|
#define VICVectAddr9 (*((volatile unsigned long *) 0xFFFFF124))
|
32 |
|
|
#define VICVectAddr10 (*((volatile unsigned long *) 0xFFFFF128))
|
33 |
|
|
#define VICVectAddr11 (*((volatile unsigned long *) 0xFFFFF12C))
|
34 |
|
|
#define VICVectAddr12 (*((volatile unsigned long *) 0xFFFFF130))
|
35 |
|
|
#define VICVectAddr13 (*((volatile unsigned long *) 0xFFFFF134))
|
36 |
|
|
#define VICVectAddr14 (*((volatile unsigned long *) 0xFFFFF138))
|
37 |
|
|
#define VICVectAddr15 (*((volatile unsigned long *) 0xFFFFF13C))
|
38 |
|
|
#define VICVectCntl0 (*((volatile unsigned long *) 0xFFFFF200))
|
39 |
|
|
#define VICVectCntl1 (*((volatile unsigned long *) 0xFFFFF204))
|
40 |
|
|
#define VICVectCntl2 (*((volatile unsigned long *) 0xFFFFF208))
|
41 |
|
|
#define VICVectCntl3 (*((volatile unsigned long *) 0xFFFFF20C))
|
42 |
|
|
#define VICVectCntl4 (*((volatile unsigned long *) 0xFFFFF210))
|
43 |
|
|
#define VICVectCntl5 (*((volatile unsigned long *) 0xFFFFF214))
|
44 |
|
|
#define VICVectCntl6 (*((volatile unsigned long *) 0xFFFFF218))
|
45 |
|
|
#define VICVectCntl7 (*((volatile unsigned long *) 0xFFFFF21C))
|
46 |
|
|
#define VICVectCntl8 (*((volatile unsigned long *) 0xFFFFF220))
|
47 |
|
|
#define VICVectCntl9 (*((volatile unsigned long *) 0xFFFFF224))
|
48 |
|
|
#define VICVectCntl10 (*((volatile unsigned long *) 0xFFFFF228))
|
49 |
|
|
#define VICVectCntl11 (*((volatile unsigned long *) 0xFFFFF22C))
|
50 |
|
|
#define VICVectCntl12 (*((volatile unsigned long *) 0xFFFFF230))
|
51 |
|
|
#define VICVectCntl13 (*((volatile unsigned long *) 0xFFFFF234))
|
52 |
|
|
#define VICVectCntl14 (*((volatile unsigned long *) 0xFFFFF238))
|
53 |
|
|
#define VICVectCntl15 (*((volatile unsigned long *) 0xFFFFF23C))
|
54 |
|
|
|
55 |
|
|
/* Pin Connect Block */
|
56 |
|
|
#define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
|
57 |
|
|
#define PINSEL1 (*((volatile unsigned long *) 0xE002C004))
|
58 |
|
|
#define PINSEL2 (*((volatile unsigned long *) 0xE002C014))
|
59 |
|
|
|
60 |
|
|
/* General Purpose Input/Output (GPIO) */
|
61 |
|
|
#define IO0PIN (*((volatile unsigned long *) 0xE0028000))
|
62 |
|
|
#define IO0SET (*((volatile unsigned long *) 0xE0028004))
|
63 |
|
|
#define IO0DIR (*((volatile unsigned long *) 0xE0028008))
|
64 |
|
|
#define IO0CLR (*((volatile unsigned long *) 0xE002800C))
|
65 |
|
|
#define IO1PIN (*((volatile unsigned long *) 0xE0028010))
|
66 |
|
|
#define IO1SET (*((volatile unsigned long *) 0xE0028014))
|
67 |
|
|
#define IO1DIR (*((volatile unsigned long *) 0xE0028018))
|
68 |
|
|
#define IO1CLR (*((volatile unsigned long *) 0xE002801C))
|
69 |
|
|
|
70 |
|
|
/* Memory Accelerator Module (MAM) */
|
71 |
|
|
#define MAMCR (*((volatile unsigned char *) 0xE01FC000))
|
72 |
|
|
#define MAMTIM (*((volatile unsigned char *) 0xE01FC004))
|
73 |
|
|
#define MAMMAP (*((volatile unsigned char *) 0xE01FC040))
|
74 |
|
|
|
75 |
|
|
/* Phase Locked Loop (PLL) */
|
76 |
|
|
#define PLLCON (*((volatile unsigned char *) 0xE01FC080))
|
77 |
|
|
#define PLLCFG (*((volatile unsigned char *) 0xE01FC084))
|
78 |
|
|
#define PLLSTAT (*((volatile unsigned short*) 0xE01FC088))
|
79 |
|
|
#define PLLFEED (*((volatile unsigned char *) 0xE01FC08C))
|
80 |
|
|
|
81 |
|
|
/* VPB Divider */
|
82 |
|
|
#define VPBDIV (*((volatile unsigned char *) 0xE01FC100))
|
83 |
|
|
|
84 |
|
|
/* Power Control */
|
85 |
|
|
#define PCON (*((volatile unsigned char *) 0xE01FC0C0))
|
86 |
|
|
#define PCONP (*((volatile unsigned long *) 0xE01FC0C4))
|
87 |
|
|
|
88 |
|
|
/* External Interrupts */
|
89 |
|
|
#define EXTINT (*((volatile unsigned char *) 0xE01FC140))
|
90 |
|
|
#define EXTWAKE (*((volatile unsigned char *) 0xE01FC144))
|
91 |
|
|
|
92 |
|
|
/* Timer 0 */
|
93 |
|
|
#define TIMER0_IR (*((volatile unsigned long *) 0xE0004000))
|
94 |
|
|
#define TIMER0_TCR (*((volatile unsigned long *) 0xE0004004))
|
95 |
|
|
#define TIMER0_TC (*((volatile unsigned long *) 0xE0004008))
|
96 |
|
|
#define TIMER0_PR (*((volatile unsigned long *) 0xE000400C))
|
97 |
|
|
#define TIMER0_PC (*((volatile unsigned long *) 0xE0004010))
|
98 |
|
|
#define TIMER0_MCR (*((volatile unsigned long *) 0xE0004014))
|
99 |
|
|
#define TIMER0_MR0 (*((volatile unsigned long *) 0xE0004018))
|
100 |
|
|
#define TIMER0_MR1 (*((volatile unsigned long *) 0xE000401C))
|
101 |
|
|
#define TIMER0_MR2 (*((volatile unsigned long *) 0xE0004020))
|
102 |
|
|
#define TIMER0_MR3 (*((volatile unsigned long *) 0xE0004024))
|
103 |
|
|
#define TIMER0_CCR (*((volatile unsigned long *) 0xE0004028))
|
104 |
|
|
#define TIMER0_CR0 (*((volatile unsigned long *) 0xE000402C))
|
105 |
|
|
#define TIMER0_CR1 (*((volatile unsigned long *) 0xE0004030))
|
106 |
|
|
#define TIMER0_CR2 (*((volatile unsigned long *) 0xE0004034))
|
107 |
|
|
#define TIMER0_CR3 (*((volatile unsigned long *) 0xE0004038))
|
108 |
|
|
#define TIMER0_EMR (*((volatile unsigned long *) 0xE000403C))
|
109 |
|
|
|
110 |
|
|
/* Timer 1 */
|
111 |
|
|
#define TIMER1_IR (*((volatile unsigned long *) 0xE0008000))
|
112 |
|
|
#define TIMER1_TCR (*((volatile unsigned long *) 0xE0008004))
|
113 |
|
|
#define TIMER1_TC (*((volatile unsigned long *) 0xE0008008))
|
114 |
|
|
#define TIMER1_PR (*((volatile unsigned long *) 0xE000800C))
|
115 |
|
|
#define TIMER1_PC (*((volatile unsigned long *) 0xE0008010))
|
116 |
|
|
#define TIMER1_MCR (*((volatile unsigned long *) 0xE0008014))
|
117 |
|
|
#define TIMER1_MR0 (*((volatile unsigned long *) 0xE0008018))
|
118 |
|
|
#define TIMER1_MR1 (*((volatile unsigned long *) 0xE000801C))
|
119 |
|
|
#define TIMER1_MR2 (*((volatile unsigned long *) 0xE0008020))
|
120 |
|
|
#define TIMER1_MR3 (*((volatile unsigned long *) 0xE0008024))
|
121 |
|
|
#define TIMER1_CCR (*((volatile unsigned long *) 0xE0008028))
|
122 |
|
|
#define TIMER1_CR0 (*((volatile unsigned long *) 0xE000802C))
|
123 |
|
|
#define TIMER1_CR1 (*((volatile unsigned long *) 0xE0008030))
|
124 |
|
|
#define TIMER1_CR2 (*((volatile unsigned long *) 0xE0008034))
|
125 |
|
|
#define TIMER1_CR3 (*((volatile unsigned long *) 0xE0008038))
|
126 |
|
|
#define TIMER1_EMR (*((volatile unsigned long *) 0xE000803C))
|
127 |
|
|
|
128 |
|
|
/* Pulse Width Modulator (PWM) */
|
129 |
|
|
#define PWM_IR (*((volatile unsigned long *) 0xE0014000))
|
130 |
|
|
#define PWM_TCR (*((volatile unsigned long *) 0xE0014004))
|
131 |
|
|
#define PWM_TC (*((volatile unsigned long *) 0xE0014008))
|
132 |
|
|
#define PWM_PR (*((volatile unsigned long *) 0xE001400C))
|
133 |
|
|
#define PWM_PC (*((volatile unsigned long *) 0xE0014010))
|
134 |
|
|
#define PWM_MCR (*((volatile unsigned long *) 0xE0014014))
|
135 |
|
|
#define PWM_MR0 (*((volatile unsigned long *) 0xE0014018))
|
136 |
|
|
#define PWM_MR1 (*((volatile unsigned long *) 0xE001401C))
|
137 |
|
|
#define PWM_MR2 (*((volatile unsigned long *) 0xE0014020))
|
138 |
|
|
#define PWM_MR3 (*((volatile unsigned long *) 0xE0014024))
|
139 |
|
|
#define PWM_MR4 (*((volatile unsigned long *) 0xE0014040))
|
140 |
|
|
#define PWM_MR5 (*((volatile unsigned long *) 0xE0014044))
|
141 |
|
|
#define PWM_MR6 (*((volatile unsigned long *) 0xE0014048))
|
142 |
|
|
#define PWM_CCR (*((volatile unsigned long *) 0xE0014028))
|
143 |
|
|
#define PWM_CR0 (*((volatile unsigned long *) 0xE001402C))
|
144 |
|
|
#define PWM_CR1 (*((volatile unsigned long *) 0xE0014030))
|
145 |
|
|
#define PWM_CR2 (*((volatile unsigned long *) 0xE0014034))
|
146 |
|
|
#define PWM_CR3 (*((volatile unsigned long *) 0xE0014038))
|
147 |
|
|
#define PWM_EMR (*((volatile unsigned long *) 0xE001403C))
|
148 |
|
|
#define PWM_PCR (*((volatile unsigned long *) 0xE001404C))
|
149 |
|
|
#define PWM_LER (*((volatile unsigned long *) 0xE0014050))
|
150 |
|
|
|
151 |
|
|
/* Universal Asynchronous Receiver Transmitter 0 (UART0) */
|
152 |
|
|
#define UART0_RBR (*((volatile unsigned char *) 0xE000C000))
|
153 |
|
|
#define UART0_THR (*((volatile unsigned char *) 0xE000C000))
|
154 |
|
|
#define UART0_IER (*((volatile unsigned char *) 0xE000C004))
|
155 |
|
|
#define UART0_IIR (*((volatile unsigned char *) 0xE000C008))
|
156 |
|
|
#define UART0_FCR (*((volatile unsigned char *) 0xE000C008))
|
157 |
|
|
#define UART0_LCR (*((volatile unsigned char *) 0xE000C00C))
|
158 |
|
|
#define UART0_MCR (*((volatile unsigned char *) 0xE000C010))
|
159 |
|
|
#define UART0_LSR (*((volatile unsigned char *) 0xE000C014))
|
160 |
|
|
#define UART0_MSR (*((volatile unsigned char *) 0xE000C018))
|
161 |
|
|
#define UART0_SCR (*((volatile unsigned char *) 0xE000C01C))
|
162 |
|
|
#define UART0_DLL (*((volatile unsigned char *) 0xE000C000))
|
163 |
|
|
#define UART0_DLM (*((volatile unsigned char *) 0xE000C004))
|
164 |
|
|
|
165 |
|
|
/* Universal Asynchronous Receiver Transmitter 1 (UART1) */
|
166 |
|
|
#define UART1_RBR (*((volatile unsigned char *) 0xE0010000))
|
167 |
|
|
#define UART1_THR (*((volatile unsigned char *) 0xE0010000))
|
168 |
|
|
#define UART1_IER (*((volatile unsigned char *) 0xE0010004))
|
169 |
|
|
#define UART1_IIR (*((volatile unsigned char *) 0xE0010008))
|
170 |
|
|
#define UART1_FCR (*((volatile unsigned char *) 0xE0010008))
|
171 |
|
|
#define UART1_LCR (*((volatile unsigned char *) 0xE001000C))
|
172 |
|
|
#define UART1_MCR (*((volatile unsigned char *) 0xE0010010))
|
173 |
|
|
#define UART1_LSR (*((volatile unsigned char *) 0xE0010014))
|
174 |
|
|
#define UART1_MSR (*((volatile unsigned char *) 0xE0010018))
|
175 |
|
|
#define UART1_SCR (*((volatile unsigned char *) 0xE001001C))
|
176 |
|
|
#define UART1_DLL (*((volatile unsigned char *) 0xE0010000))
|
177 |
|
|
#define UART1_DLM (*((volatile unsigned char *) 0xE0010004))
|
178 |
|
|
|
179 |
|
|
/* I2C Interface */
|
180 |
|
|
#define I2C_I2CONSET (*((volatile unsigned char *) 0xE001C000))
|
181 |
|
|
#define I2C_I2STAT (*((volatile unsigned char *) 0xE001C004))
|
182 |
|
|
#define I2C_I2DAT (*((volatile unsigned char *) 0xE001C008))
|
183 |
|
|
#define I2C_I2ADR (*((volatile unsigned char *) 0xE001C00C))
|
184 |
|
|
#define I2C_I2SCLH (*((volatile unsigned short*) 0xE001C010))
|
185 |
|
|
#define I2C_I2SCLL (*((volatile unsigned short*) 0xE001C014))
|
186 |
|
|
#define I2C_I2CONCLR (*((volatile unsigned char *) 0xE001C018))
|
187 |
|
|
|
188 |
|
|
/* SPI (Serial Peripheral Interface) */
|
189 |
|
|
#define SPI_SPCR (*((volatile unsigned char *) 0xE0020000))
|
190 |
|
|
#define SPI_SPSR (*((volatile unsigned char *) 0xE0020004))
|
191 |
|
|
#define SPI_SPDR (*((volatile unsigned char *) 0xE0020008))
|
192 |
|
|
#define SPI_SPCCR (*((volatile unsigned char *) 0xE002000C))
|
193 |
|
|
#define SPI_SPTCR (*((volatile unsigned char *) 0xE0020010))
|
194 |
|
|
#define SPI_SPTSR (*((volatile unsigned char *) 0xE0020014))
|
195 |
|
|
#define SPI_SPTOR (*((volatile unsigned char *) 0xE0020018))
|
196 |
|
|
#define SPI_SPINT (*((volatile unsigned char *) 0xE002001C))
|
197 |
|
|
|
198 |
|
|
/* Real Time Clock */
|
199 |
|
|
#define RTC_ILR (*((volatile unsigned char *) 0xE0024000))
|
200 |
|
|
#define RTC_CTC (*((volatile unsigned short*) 0xE0024004))
|
201 |
|
|
#define RTC_CCR (*((volatile unsigned char *) 0xE0024008))
|
202 |
|
|
#define RTC_CIIR (*((volatile unsigned char *) 0xE002400C))
|
203 |
|
|
#define RTC_AMR (*((volatile unsigned char *) 0xE0024010))
|
204 |
|
|
#define RTC_CTIME0 (*((volatile unsigned long *) 0xE0024014))
|
205 |
|
|
#define RTC_CTIME1 (*((volatile unsigned long *) 0xE0024018))
|
206 |
|
|
#define RTC_CTIME2 (*((volatile unsigned long *) 0xE002401C))
|
207 |
|
|
#define RTC_SEC (*((volatile unsigned char *) 0xE0024020))
|
208 |
|
|
#define RTC_MIN (*((volatile unsigned char *) 0xE0024024))
|
209 |
|
|
#define RTC_HOUR (*((volatile unsigned char *) 0xE0024028))
|
210 |
|
|
#define RTC_DOM (*((volatile unsigned char *) 0xE002402C))
|
211 |
|
|
#define RTC_DOW (*((volatile unsigned char *) 0xE0024030))
|
212 |
|
|
#define RTC_DOY (*((volatile unsigned short*) 0xE0024034))
|
213 |
|
|
#define RTC_MONTH (*((volatile unsigned char *) 0xE0024038))
|
214 |
|
|
#define RTC_YEAR (*((volatile unsigned short*) 0xE002403C))
|
215 |
|
|
#define RTC_ALSEC (*((volatile unsigned char *) 0xE0024060))
|
216 |
|
|
#define RTC_ALMIN (*((volatile unsigned char *) 0xE0024064))
|
217 |
|
|
#define RTC_ALHOUR (*((volatile unsigned char *) 0xE0024068))
|
218 |
|
|
#define RTC_ALDOM (*((volatile unsigned char *) 0xE002406C))
|
219 |
|
|
#define RTC_ALDOW (*((volatile unsigned char *) 0xE0024070))
|
220 |
|
|
#define RTC_ALDOY (*((volatile unsigned short*) 0xE0024074))
|
221 |
|
|
#define RTC_ALMON (*((volatile unsigned char *) 0xE0024078))
|
222 |
|
|
#define RTC_ALYEAR (*((volatile unsigned short*) 0xE002407C))
|
223 |
|
|
#define RTC_PREINT (*((volatile unsigned short*) 0xE0024080))
|
224 |
|
|
#define RTC_PREFRAC (*((volatile unsigned short*) 0xE0024084))
|
225 |
|
|
|
226 |
|
|
/* Watchdog */
|
227 |
|
|
#define WDMOD (*((volatile unsigned char *) 0xE0000000))
|
228 |
|
|
#define WDTC (*((volatile unsigned long *) 0xE0000004))
|
229 |
|
|
#define WDFEED (*((volatile unsigned char *) 0xE0000008))
|
230 |
|
|
#define WDTV (*((volatile unsigned long *) 0xE000000C))
|
231 |
|
|
|
232 |
|
|
#endif // __LPC22xx_H
|