28
28
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
29
POSSIBILITY OF SUCH DAMAGE. */
31
/* $Id: io.h,v 1.14 2004/11/24 18:57:36 troth Exp $ */
31
/* $Id: io.h,v 1.24.2.9 2006/09/13 20:41:41 arcanum Exp $ */
33
/** \defgroup avr_io AVR device-specific IO definitions
33
/** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
34
34
\code #include <avr/io.h> \endcode
36
36
This header file includes the apropriate IO definitions for the
86
86
#include <avr/sfr_defs.h>
88
#ifndef __AVR_HAVE_MOVW__
89
# if defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
90
# define __AVR_HAVE_MOVW__ 1
94
#ifndef __AVR_HAVE_LPMX__
95
# if defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
96
# define __AVR_HAVE_LPMX__ 1
89
101
* Registers common to all AVR devices.
134
146
* Only few devices come without EEPROM. In order to assemble the
135
147
* EEPROM library components without defining a specific device, we
136
* keep the EEPROM-related definitions here, and catch the devices
137
* without EEPROM (E2END == 0) below. Obviously, the EEPROM library
138
* functions will not work for them. ;-)
148
* keep the EEPROM-related definitions here.
150
#if defined(__COMPILING_AVR_LIBC__)
140
152
/* EEPROM Control Register */
141
153
#define EECR _SFR_IO8(0x1C)
164
178
# include <avr/io76c711.h>
165
179
#elif defined (__AVR_AT86RF401__)
166
180
# include <avr/io86r401.h>
181
#elif defined (__AVR_AT90PWM2__)
182
# include <avr/io90pwmx.h>
183
#elif defined (__AVR_AT90PWM3__)
184
# include <avr/io90pwmx.h>
167
185
#elif defined (__AVR_ATmega128__)
168
186
# include <avr/iom128.h>
187
#elif defined (__AVR_ATmega1280__)
188
# include <avr/iom1280.h>
189
#elif defined (__AVR_ATmega1281__)
190
# include <avr/iom1281.h>
191
#elif defined (__AVR_ATmega2560__)
192
# include <avr/iom2560.h>
193
#elif defined (__AVR_ATmega2561__)
194
# include <avr/iom2561.h>
195
#elif defined (__AVR_AT90CAN32__)
196
# include <avr/iocan32.h>
197
#elif defined (__AVR_AT90CAN64__)
198
# include <avr/iocan64.h>
169
199
#elif defined (__AVR_AT90CAN128__)
170
200
# include <avr/iocan128.h>
201
#elif defined (__AVR_AT90USB646__)
202
# include <avr/iousb646.h>
203
#elif defined (__AVR_AT90USB647__)
204
# include <avr/iousb647.h>
205
#elif defined (__AVR_AT90USB1286__)
206
# include <avr/iousb1286.h>
207
#elif defined (__AVR_AT90USB1287__)
208
# include <avr/iousb1287.h>
171
209
#elif defined (__AVR_ATmega64__)
172
210
# include <avr/iom64.h>
211
#elif defined (__AVR_ATmega640__)
212
# include <avr/iom640.h>
213
#elif defined (__AVR_ATmega644__)
214
# include <avr/iom644.h>
215
#elif defined (__AVR_ATmega644P__)
216
# include <avr/iom644.h>
173
217
#elif defined (__AVR_ATmega645__)
174
218
# include <avr/iom645.h>
175
219
#elif defined (__AVR_ATmega6450__)
176
220
# include <avr/iom6450.h>
221
#elif defined (__AVR_ATmega649__)
222
# include <avr/iom649.h>
223
#elif defined (__AVR_ATmega6490__)
224
# include <avr/iom6490.h>
177
225
#elif defined (__AVR_ATmega103__)
178
226
# include <avr/iom103.h>
179
227
#elif defined (__AVR_ATmega32__)
180
228
# include <avr/iom32.h>
181
229
#elif defined (__AVR_ATmega323__)
182
230
# include <avr/iom323.h>
231
#elif defined (__AVR_ATmega324P__)
232
# include <avr/iom324.h>
183
233
#elif defined (__AVR_ATmega325__)
184
234
# include <avr/iom325.h>
185
235
#elif defined (__AVR_ATmega3250__)
186
236
# include <avr/iom3250.h>
237
#elif defined (__AVR_ATmega329__)
238
# include <avr/iom329.h>
239
#elif defined (__AVR_ATmega3290__)
240
# include <avr/iom3290.h>
241
#elif defined (__AVR_ATmega406__)
242
# include <avr/iom406.h>
187
243
#elif defined (__AVR_ATmega16__)
188
244
# include <avr/iom16.h>
189
245
#elif defined (__AVR_ATmega161__)
192
248
# include <avr/iom162.h>
193
249
#elif defined (__AVR_ATmega163__)
194
250
# include <avr/iom163.h>
251
#elif defined (__AVR_ATmega164P__)
252
# include <avr/iom164.h>
195
253
#elif defined (__AVR_ATmega165__)
196
254
# include <avr/iom165.h>
255
#elif defined (__AVR_ATmega165P__)
256
# include <avr/iom165p.h>
197
257
#elif defined (__AVR_ATmega168__)
198
258
# include <avr/iom168.h>
199
259
#elif defined (__AVR_ATmega169__)
200
260
# include <avr/iom169.h>
261
#elif defined (__AVR_ATmega169P__)
262
# include <avr/iom169p.h>
201
263
#elif defined (__AVR_ATmega8__)
202
264
# include <avr/iom8.h>
203
265
#elif defined (__AVR_ATmega48__)
236
298
# include <avr/iotn2313.h>
237
299
#elif defined (__AVR_ATtiny13__)
238
300
# include <avr/iotn13.h>
301
#elif defined (__AVR_ATtiny25__)
302
# include <avr/iotn25.h>
303
#elif defined (__AVR_ATtiny45__)
304
# include <avr/iotn45.h>
305
#elif defined (__AVR_ATtiny85__)
306
# include <avr/iotn85.h>
307
#elif defined (__AVR_ATtiny24__)
308
# include <avr/iotn24.h>
309
#elif defined (__AVR_ATtiny44__)
310
# include <avr/iotn44.h>
311
#elif defined (__AVR_ATtiny84__)
312
# include <avr/iotn84.h>
313
#elif defined (__AVR_ATtiny261__)
314
# include <avr/iotn261.h>
315
#elif defined (__AVR_ATtiny461__)
316
# include <avr/iotn461.h>
317
#elif defined (__AVR_ATtiny861__)
318
# include <avr/iotn861.h>
239
319
/* avr1: the following only supported for assembler programs */
240
320
#elif defined (__AVR_ATtiny28__)
241
321
# include <avr/iotn28.h>