RTEMS CPU Kit with SuperCore  4.11.3
io1200.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright (c) 2002, Marek Michalkiewicz
11  * All rights reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions are met:
15  *
16  * * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in
21  * the documentation and/or other materials provided with the
22  * distribution.
23  *
24  * * Neither the name of the copyright holders nor the names of
25  * contributors may be used to endorse or promote products derived
26  * from this software without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38  * POSSIBILITY OF SUCH DAMAGE.
39  */
40 
41 #ifndef _AVR_IO1200_H_
42 #define _AVR_IO1200_H_ 1
43 
51 #ifndef _AVR_IO_H_
52 # error "Include <avr/io.h> instead of this file."
53 #endif
54 
55 #ifndef _AVR_IOXXX_H_
56 # define _AVR_IOXXX_H_ "io1200.h"
57 #else
58 # error "Attempt to include more than one <avr/ioXXX.h> file."
59 #endif
60 
61 #ifndef __ASSEMBLER__
62 # warning "MCU not supported by the C compiler"
63 #endif
64 
65 /* I/O registers */
66 
67 /* 0x00..0x07 reserved */
68 
69 /* Analog Comparator Control and Status Register */
70 #define ACSR _SFR_IO8(0x08)
71 
72 /* 0x09..0x0F reserved */
73 
74 #define PIND _SFR_IO8(0x10)
75 #define DDRD _SFR_IO8(0x11)
76 #define PORTD _SFR_IO8(0x12)
77 
78 /* 0x13..0x15 reserved */
79 
80 #define PINB _SFR_IO8(0x16)
81 #define DDRB _SFR_IO8(0x17)
82 #define PORTB _SFR_IO8(0x18)
83 
84 /* 0x19..0x1B reserved */
85 
86 /* EEPROM Control Register */
87 #define EECR _SFR_IO8(0x1C)
88 
89 /* EEPROM Data Register */
90 #define EEDR _SFR_IO8(0x1D)
91 
92 /* EEPROM Address Register */
93 #define EEAR _SFR_IO8(0x1E)
94 #define EEARL _SFR_IO8(0x1E)
95 
96 /* 0x1F..0x20 reserved */
97 
98 /* Watchdog Timer Control Register */
99 #define WDTCR _SFR_IO8(0x21)
100 
101 /* 0x22..0x31 reserved */
102 
103 #define TCNT0 _SFR_IO8(0x32)
104 #define TCCR0 _SFR_IO8(0x33)
105 
106 /* 0x34 reserved */
107 
108 #define MCUCR _SFR_IO8(0x35)
109 
110 /* 0x36..0x37 reserved */
111 
112 /* Timer/Counter Interrupt Flag Register */
113 #define TIFR _SFR_IO8(0x38)
114 
115 /* Timer/Counter Interrupt MaSK Register */
116 #define TIMSK _SFR_IO8(0x39)
117 
118 /* 0x3A reserved */
119 
120 #define GIMSK _SFR_IO8(0x3B)
121 
122 /* 0x3C..0x3E reserved */
123 
124 /* 0x3F SREG */
125 
126 /* Interrupt vectors */
127 
128 /* External Interrupt 0 */
129 #define INT0_vect _VECTOR(1)
130 #define SIG_INTERRUPT0 _VECTOR(1)
131 
132 /* Timer/Counter0 Overflow */
133 #define TIMER0_OVF_vect _VECTOR(2)
134 #define SIG_OVERFLOW0 _VECTOR(2)
135 
136 /* Analog Comparator */
137 #define ANA_COMP_vect _VECTOR(3)
138 #define SIG_COMPARATOR _VECTOR(3)
139 
140 #define _VECTORS_SIZE 8
141 
142 /* Bit numbers */
143 
144 /* GIMSK */
145 #define INT0 6
146 
147 /* TIMSK */
148 #define TOIE0 1
149 
150 /* TIFR */
151 #define TOV0 1
152 
153 /* MCUCR */
154 #define SE 5
155 #define SM 4
156 #define ISC01 1
157 #define ISC00 0
158 
159 /* TCCR0 */
160 #define CS02 2
161 #define CS01 1
162 #define CS00 0
163 
164 /* WDTCR */
165 #define WDE 3
166 #define WDP2 2
167 #define WDP1 1
168 #define WDP0 0
169 
170 /* EECR */
171 #undef EEMWE
172 
173 /*
174  PB7 = SCK
175  PB6 = MISO
176  PB5 = MOSI
177  PB1 = AIN1
178  PB0 = AIN0
179  */
180 
181 /* PORTB */
182 #define PB7 7
183 #define PB6 6
184 #define PB5 5
185 #define PB4 4
186 #define PB3 3
187 #define PB2 2
188 #define PB1 1
189 #define PB0 0
190 
191 /* DDRB */
192 #define DDB7 7
193 #define DDB6 6
194 #define DDB5 5
195 #define DDB4 4
196 #define DDB3 3
197 #define DDB2 2
198 #define DDB1 1
199 #define DDB0 0
200 
201 /* PINB */
202 #define PINB7 7
203 #define PINB6 6
204 #define PINB5 5
205 #define PINB4 4
206 #define PINB3 3
207 #define PINB2 2
208 #define PINB1 1
209 #define PINB0 0
210 
211 /* PORTD */
212 #define PD6 6
213 #define PD5 5
214 #define PD4 4
215 #define PD3 3
216 #define PD2 2
217 #define PD1 1
218 #define PD0 0
219 
220 /* DDRD */
221 #define DDD6 6
222 #define DDD5 5
223 #define DDD4 4
224 #define DDD3 3
225 #define DDD2 2
226 #define DDD1 1
227 #define DDD0 0
228 
229 /* PIND */
230 #define PIND6 6
231 #define PIND5 5
232 #define PIND4 4
233 #define PIND3 3
234 #define PIND2 2
235 #define PIND1 1
236 #define PIND0 0
237 
238 /* ACSR */
239 #define ACD 7
240 #define ACO 5
241 #define ACI 4
242 #define ACIE 3
243 #define ACIS1 1
244 #define ACIS0 0
245 
246 /* EEPROM Control Register */
247 #define EERIE 3
248 #define EEMWE 2
249 #define EEWE 1
250 #define EERE 0
251 
252 #undef ZH
253 
254 /* Last memory addresses */
255 #define RAMEND 0x1F
256 #define XRAMEND 0x0
257 #define E2END 0x3F
258 #define E2PAGESIZE 0
259 #define FLASHEND 0x3FF
260 
261 
262 /* Fuses */
263 #define FUSE_MEMORY_SIZE 1
264 
265 /* Low Fuse Byte */
266 #define FUSE_RCEN (unsigned char)~_BV(0)
267 #define FUSE_SPIEN (unsigned char)~_BV(5)
268 #define LFUSE_DEFAULT (0xFF)
269 
270 
271 /* Lock Bits */
272 #define __LOCK_BITS_EXIST
273 
274 
275 /* Signature */
276 #define SIGNATURE_0 0x1E
277 #define SIGNATURE_1 0x90
278 #define SIGNATURE_2 0x01
279 
280 
282 #endif /* _AVR_IO1200_H_ */