source: rtems/cpukit/score/cpu/avr/avr/iocanxx.h @ 04a62dce

4.104.11
Last change on this file since 04a62dce was 04a62dce, checked in by Joel Sherrill <joel.sherrill@…>, on Aug 6, 2009 at 2:52:07 PM

2009-08-05 Josh Switnicki <josh.switnicki@…>

  • Makefile.am: added AVR specific Header files to score/cpu/avr/avr. These are from avr-libc 1.6 and assumed to exist by AVR applications.
  • preinstall.am: Regenerated.
  • Property mode set to 100644
File size: 49.4 KB
Line 
1/* Copyright (c) 2004,2005,2006 Colin O'Flynn <coflynn@newae.com>
2   All rights reserved.
3
4   Redistribution and use in source and binary forms, with or without
5   modification, are permitted provided that the following conditions are met:
6
7   * Redistributions of source code must retain the above copyright
8     notice, this list of conditions and the following disclaimer.
9
10   * Redistributions in binary form must reproduce the above copyright
11     notice, this list of conditions and the following disclaimer in
12     the documentation and/or other materials provided with the
13     distribution.
14
15   * Neither the name of the copyright holders nor the names of
16     contributors may be used to endorse or promote products derived
17     from this software without specific prior written permission.
18
19  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  POSSIBILITY OF SUCH DAMAGE. */
30
31/* $Id$ */
32
33/* This file is based largely on:
34   - iom128.h by Peter Jansen (bit defines)
35   - iom169.h by Juergen Schilling <juergen.schilling@honeywell.com>
36     (register addresses)
37   - AT90CAN128 Datasheet (bit defines and register addresses)
38   - Appnote on Mega128 --> AT90Can128 Conversion (for what registers I need
39     to change) */
40
41/* iocanxx.h - definitions for AT90CAN32, AT90CAN64 and AT90CAN128 */
42
43#ifndef _AVR_IOCANXX_H_
44#define _AVR_IOCANXX_H_ 1
45
46/* This file should only be included from <avr/io.h>, never directly. */
47
48#ifndef _AVR_IO_H_
49#  error "Include <avr/io.h> instead of this file."
50#endif
51
52#ifndef _AVR_IOXXX_H_
53#  define _AVR_IOXXX_H_ "iocanxx.h"
54#else
55#  error "Attempt to include more than one <avr/ioXXX.h> file."
56#endif
57
58/* I/O registers and bit definitions. */
59
60/* RegDef:  Port A */
61#define PINA   _SFR_IO8(0x00)
62#define DDRA   _SFR_IO8(0x01)
63#define PORTA  _SFR_IO8(0x02)
64
65/* RegDef:  Port B */
66#define PINB   _SFR_IO8(0x03)
67#define DDRB   _SFR_IO8(0x04)
68#define PORTB  _SFR_IO8(0x05)
69
70/* RegDef:  Port C */
71#define PINC   _SFR_IO8(0x06)
72#define DDRC   _SFR_IO8(0x07)
73#define PORTC  _SFR_IO8(0x08)
74
75/* RegDef:  Port D */
76#define PIND   _SFR_IO8(0x09)
77#define DDRD   _SFR_IO8(0x0A)
78#define PORTD  _SFR_IO8(0x0B)
79
80/* RegDef:  Port E */
81#define PINE   _SFR_IO8(0x0C)
82#define DDRE   _SFR_IO8(0x0D)
83#define PORTE  _SFR_IO8(0x0E)
84
85/* RegDef:  Port F */
86#define PINF   _SFR_IO8(0x0F)
87#define DDRF   _SFR_IO8(0x10)
88#define PORTF  _SFR_IO8(0x11)
89
90/* RegDef:  Port G */
91#define PING   _SFR_IO8(0x12)
92#define DDRG   _SFR_IO8(0x13)
93#define PORTG  _SFR_IO8(0x14)
94
95/* RegDef:  Timer/Counter 0 interrupt Flag Register */
96#define TIFR0  _SFR_IO8(0x15)
97
98/* RegDef:  Timer/Counter 1 interrupt Flag Register */
99#define TIFR1  _SFR_IO8(0x16)
100
101/* RegDef:  Timer/Counter 2 interrupt Flag Register */
102#define TIFR2  _SFR_IO8(0x17)
103
104/* RegDef:  Timer/Counter 3 interrupt Flag Register */
105#define TIFR3  _SFR_IO8(0x18)
106
107/* RegDef:  External Interrupt Flag Register */
108#define EIFR   _SFR_IO8(0x1C)
109
110/* RegDef:  External Interrupt Mask Register */
111#define EIMSK  _SFR_IO8(0x1D)
112
113/* RegDef:  General Purpose I/O Register 0 */
114#define GPIOR0 _SFR_IO8(0x1E)
115
116/* RegDef:  EEPROM Control Register */
117#define EECR   _SFR_IO8(0x1F)
118
119/* RegDef:  EEPROM Data Register */
120#define EEDR   _SFR_IO8(0x20)
121
122/* RegDef:  EEPROM Address Register */
123#define EEAR   _SFR_IO16(0x21)
124#define EEARL  _SFR_IO8(0x21)
125#define EEARH  _SFR_IO8(0x22)
126
127/* 6-char sequence denoting where to find the EEPROM registers in memory space.
128   Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
129   subroutines.
130   First two letters:  EECR address.
131   Second two letters: EEDR address.
132   Last two letters:   EEAR address.  */
133#define __EEPROM_REG_LOCATIONS__ 1F2021
134
135/* RegDef:  General Timer/Counter Control Register */
136#define GTCCR  _SFR_IO8(0x23)
137
138/* RegDef:  Timer/Counter Control Register A */
139#define TCCR0A _SFR_IO8(0x24)
140
141/* RegDef:  Timer/Counter Register */
142#define TCNT0  _SFR_IO8(0x26)
143
144/* RegDef:  Output Compare Register A */
145#define OCR0A  _SFR_IO8(0x27)
146
147/* RegDef:  General Purpose I/O Register 1 */
148#define GPIOR1 _SFR_IO8(0x2A)
149
150/* RegDef:  General Purpose I/O Register 2 */
151#define GPIOR2 _SFR_IO8(0x2B)
152
153/* RegDef:  SPI Control Register */
154#define SPCR   _SFR_IO8(0x2C)
155
156/* RegDef:  SPI Status Register */
157#define SPSR   _SFR_IO8(0x2D)
158
159/* RegDef:  SPI Data Register */
160#define SPDR   _SFR_IO8(0x2E)
161
162/* RegDef:  Analog Comperator Control and Status Register */
163#define ACSR   _SFR_IO8(0x30)
164
165/* RegDef:  On-chip Debug Register */
166#define OCDR   _SFR_IO8(0x31)
167
168/* RegDef:  Sleep Mode Control Register */
169#define SMCR   _SFR_IO8(0x33)
170
171/* RegDef:  MCU Status Register */
172#define MCUSR  _SFR_IO8(0x34)
173
174/* RegDef:  MCU Control Rgeister */
175#define MCUCR  _SFR_IO8(0x35)
176
177/* RegDef:  Store Program Memory Control and Status Register */
178#define SPMCSR _SFR_IO8(0x37)
179
180/* RegDef:  RAMPZ register. */
181#define RAMPZ  _SFR_IO8(0x3B)
182
183/* RegDef:  Watchdog Timer Control Register */
184#define WDTCR  _SFR_MEM8(0x60)
185
186/* RegDef:  Clock Prescale Register */
187#define CLKPR  _SFR_MEM8(0x61)
188
189/* RegDef:  Oscillator Calibration Register */
190#define OSCCAL _SFR_MEM8(0x66)
191
192/* RegDef:  External Interrupt Control Register A */
193#define EICRA  _SFR_MEM8(0x69)
194
195/* RegDef:  External Interrupt Control Register B */
196#define EICRB  _SFR_MEM8(0x6A)
197
198/* RegDef:  Timer/Counter 0 Interrupt Mask Register */
199#define TIMSK0 _SFR_MEM8(0x6E)
200
201/* RegDef:  Timer/Counter 1 Interrupt Mask Register */
202#define TIMSK1 _SFR_MEM8(0x6F)
203
204/* RegDef:  Timer/Counter 2 Interrupt Mask Register */
205#define TIMSK2 _SFR_MEM8(0x70)
206
207/* RegDef:  Timer/Counter 3 Interrupt Mask Register */
208#define TIMSK3 _SFR_MEM8(0x71)
209
210/* RegDef:  External Memory Control Register A */
211#define XMCRA _SFR_MEM8(0x74)
212
213/* RegDef:  External Memory Control Register A */
214#define XMCRB _SFR_MEM8(0x75)
215
216/* RegDef:  ADC Data Register */
217#ifndef __ASSEMBLER__
218#define ADC    _SFR_MEM16(0x78)
219#endif
220#define ADCW   _SFR_MEM16(0x78)
221#define ADCL   _SFR_MEM8(0x78)
222#define ADCH   _SFR_MEM8(0x79)
223
224/* RegDef:  ADC Control and Status Register A */
225#define ADCSRA _SFR_MEM8(0x7A)
226
227/* RegDef:  ADC Control and Status Register B */
228#define ADCSRB _SFR_MEM8(0x7B)
229
230/* RegDef:  ADC Multiplex Selection Register */
231#define ADMUX  _SFR_MEM8(0x7C)
232
233/* RegDef:  Digital Input Disable Register 0 */
234#define DIDR0  _SFR_MEM8(0x7E)
235
236/* RegDef:  Digital Input Disable Register 1 */
237#define DIDR1  _SFR_MEM8(0x7F)
238
239/* RegDef:  Timer/Counter1 Control Register A */
240#define TCCR1A _SFR_MEM8(0x80)
241
242/* RegDef:  Timer/Counter1 Control Register B */
243#define TCCR1B _SFR_MEM8(0x81)
244
245/* RegDef:  Timer/Counter1 Control Register C */
246#define TCCR1C _SFR_MEM8(0x82)
247
248/* RegDef:  Timer/Counter1 Register */
249#define TCNT1  _SFR_MEM16(0x84)
250#define TCNT1L _SFR_MEM8(0x84)
251#define TCNT1H _SFR_MEM8(0x85)
252
253/* RegDef:  Timer/Counter1 Input Capture Register */
254#define ICR1   _SFR_MEM16(0x86)
255#define ICR1L  _SFR_MEM8(0x86)
256#define ICR1H  _SFR_MEM8(0x87)
257
258/* RegDef:  Timer/Counter1 Output Compare Register A */
259#define OCR1A  _SFR_MEM16(0x88)
260#define OCR1AL _SFR_MEM8(0x88)
261#define OCR1AH _SFR_MEM8(0x89)
262
263/* RegDef:  Timer/Counter1 Output Compare Register B */
264#define OCR1B  _SFR_MEM16(0x8A)
265#define OCR1BL _SFR_MEM8(0x8A)
266#define OCR1BH _SFR_MEM8(0x8B)
267
268/* RegDef:  Timer/Counter1 Output Compare Register C */
269#define OCR1C  _SFR_MEM16(0x8C)
270#define OCR1CL _SFR_MEM8(0x8C)
271#define OCR1CH _SFR_MEM8(0x8D)
272
273/* RegDef:  Timer/Counter3 Control Register A */
274#define TCCR3A _SFR_MEM8(0x90)
275
276/* RegDef:  Timer/Counter3 Control Register B */
277#define TCCR3B _SFR_MEM8(0x91)
278
279/* RegDef:  Timer/Counter3 Control Register C */
280#define TCCR3C _SFR_MEM8(0x92)
281
282/* RegDef:  Timer/Counter3 Register */
283#define TCNT3  _SFR_MEM16(0x94)
284#define TCNT3L _SFR_MEM8(0x94)
285#define TCNT3H _SFR_MEM8(0x95)
286
287/* RegDef:  Timer/Counter3 Input Capture Register */
288#define ICR3   _SFR_MEM16(0x96)
289#define ICR3L  _SFR_MEM8(0x96)
290#define ICR3H  _SFR_MEM8(0x97)
291
292/* RegDef:  Timer/Counter3 Output Compare Register A */
293#define OCR3A  _SFR_MEM16(0x98)
294#define OCR3AL _SFR_MEM8(0x98)
295#define OCR3AH _SFR_MEM8(0x99)
296
297/* RegDef:  Timer/Counter3 Output Compare Register B */
298#define OCR3B  _SFR_MEM16(0x9A)
299#define OCR3BL _SFR_MEM8(0x9A)
300#define OCR3BH _SFR_MEM8(0x9B)
301
302/* RegDef:  Timer/Counter3 Output Compare Register C */
303#define OCR3C  _SFR_MEM16(0x9C)
304#define OCR3CL _SFR_MEM8(0x9C)
305#define OCR3CH _SFR_MEM8(0x9D)
306
307/* RegDef:  Timer/Counter2 Control Register A */
308#define TCCR2A _SFR_MEM8(0xB0)
309
310/* RegDef:  Timer/Counter2 Register */
311#define TCNT2  _SFR_MEM8(0xB2)
312
313/* RegDef:  Timer/Counter2 Output Compare Register */
314#define OCR2A  _SFR_MEM8(0xB3)
315
316/* RegDef:  Asynchronous Status Register */
317#define ASSR   _SFR_MEM8(0xB6)
318
319/* RegDef:  TWI Bit Rate Register */
320#define TWBR   _SFR_MEM8(0xB8)
321
322/* RegDef:  TWI Status Register */
323#define TWSR   _SFR_MEM8(0xB9)
324
325/* RegDef:  TWI (Slave) Address Register */
326#define TWAR   _SFR_MEM8(0xBA)
327
328/* RegDef:  TWI Data Register */
329#define TWDR   _SFR_MEM8(0xBB)
330
331/* RegDef:  TWI Control Register */
332#define TWCR   _SFR_MEM8(0xBC)
333
334/* RegDef:  USART0 Control and Status Register A */
335#define UCSR0A _SFR_MEM8(0xC0)
336
337/* RegDef:  USART0 Control and Status Register B */
338#define UCSR0B _SFR_MEM8(0xC1)
339
340/* RegDef:  USART0 Control and Status Register C */
341#define UCSR0C _SFR_MEM8(0xC2)
342
343/* RegDef:  USART0 Baud Rate Register */
344#define UBRR0  _SFR_MEM16(0xC4)
345#define UBRR0L _SFR_MEM8(0xC4)
346#define UBRR0H _SFR_MEM8(0xC5)
347
348/* RegDef:  USART0 I/O Data Register */
349#define UDR0   _SFR_MEM8(0xC6)
350
351/* RegDef:  USART1 Control and Status Register A */
352#define UCSR1A _SFR_MEM8(0xC8)
353
354/* RegDef:  USART1 Control and Status Register B */
355#define UCSR1B _SFR_MEM8(0xC9)
356
357/* RegDef:  USART1 Control and Status Register C */
358#define UCSR1C _SFR_MEM8(0xCA)
359
360/* RegDef:  USART1 Baud Rate Register */
361#define UBRR1  _SFR_MEM16(0xCC)
362#define UBRR1L _SFR_MEM8(0xCC)
363#define UBRR1H _SFR_MEM8(0xCD)
364
365/* RegDef:  USART1 I/O Data Register */
366#define UDR1   _SFR_MEM8(0xCE)
367
368/* RegDef:  CAN General Control Register*/
369#define CANGCON _SFR_MEM8(0xD8)
370
371/* RegDef:  CAN General Status Register*/
372#define CANGSTA _SFR_MEM8(0xD9)
373
374/* RegDef:  CAN General Interrupt Register*/
375#define CANGIT _SFR_MEM8(0xDA)
376
377/* RegDef:  CAN General Interrupt Enable Register*/
378#define CANGIE _SFR_MEM8(0xDB)
379
380/* RegDef:  CAN Enable MOb Register*/
381#define CANEN2 _SFR_MEM8(0xDC)
382
383/* RegDef:  CAN Enable MOb Register*/
384#define CANEN1 _SFR_MEM8(0xDD)
385
386/* RegDef:  CAN Enable Interrupt MOb Register*/
387#define CANIE2 _SFR_MEM8(0xDE)
388
389/* RegDef:  CAN Enable Interrupt MOb Register*/
390#define CANIE1 _SFR_MEM8(0xDF)
391
392/* RegDef:  CAN Status Interrupt MOb Register*/
393/*
394 * WARNING: Do not apply the SIT8...SIT14 constants to bits in the CANSIT
395 * register.
396 */
397#define CANSIT  _SFR_MEM16(0xE0)
398#define CANSIT2 _SFR_MEM8(0xE0)
399#define CANSIT1 _SFR_MEM8(0xE1)
400
401/* RegDef:  CAN Bit Timing Register 1*/
402#define CANBT1 _SFR_MEM8(0xE2)
403
404/* RegDef:  CAN Bit Timing Register 2*/
405#define CANBT2 _SFR_MEM8(0xE3)
406
407/* RegDef:  CAN Bit Timing Register 3*/
408#define CANBT3 _SFR_MEM8(0xE4)
409
410/* RegDef:  CAN Timer Control Register*/
411#define CANTCON _SFR_MEM8(0xE5)
412
413/* RegDef:  CAN Timer Register*/
414#define CANTIM _SFR_MEM16(0xE6)
415#define CANTIML _SFR_MEM8(0xE6)
416#define CANTIMH _SFR_MEM8(0xE7)
417
418/* RegDef:  CAN TTC Timer Register*/
419#define CANTTC _SFR_MEM16(0xE8)
420#define CANTTCL _SFR_MEM8(0xE8)
421#define CANTTCH _SFR_MEM8(0xE9)
422
423/* RegDef:  CAN Transmitt Error Counter Register*/
424#define CANTEC _SFR_MEM8(0xEA)
425
426/* RegDef:  CAN Receive Error Counter Register*/
427#define CANREC _SFR_MEM8(0xEB)
428
429/* RegDef:  CAN Highest Priority MOb Register*/
430#define CANHPMOB _SFR_MEM8(0xEC)
431
432/* RegDef:  CAN Page MOb Register*/
433#define CANPAGE _SFR_MEM8(0xED)
434
435/* RegDef:  CAN MOb Status Register*/
436#define CANSTMOB _SFR_MEM8(0xEE)
437
438/* RegDef:  CAN MOb Control and DLC Register*/
439#define CANCDMOB _SFR_MEM8(0xEF)
440
441/* RegDef:  CAN Identifier Tag Registers*/
442#define CANIDT  _SFR_MEM32(0xF0)
443
444#define CANIDT4 _SFR_MEM8(0xF0)
445#define CANIDT3 _SFR_MEM8(0xF1)
446#define CANIDT2 _SFR_MEM8(0xF2)
447#define CANIDT1 _SFR_MEM8(0xF3)
448
449/* RegDef:  CAN Identifier Mask Registers */
450#define CANIDM  _SFR_MEM32(0xF4)
451
452#define CANIDM4 _SFR_MEM8(0xF4)
453#define CANIDM3 _SFR_MEM8(0xF5)
454#define CANIDM2 _SFR_MEM8(0xF6)
455#define CANIDM1 _SFR_MEM8(0xF7)
456
457/* RegDef:  CAN TTC Timer Register*/
458#define CANSTM _SFR_MEM16(0xF8)
459#define CANSTML _SFR_MEM8(0xF8)
460#define CANSTMH _SFR_MEM8(0xF9)
461
462/* RegDef:  CAN Message Register*/
463#define CANMSG _SFR_MEM8(0xFA)
464
465/* Interrupt vectors */
466
467/* External Interrupt Request 0 */
468#define INT0_vect                       _VECTOR(1)
469#define SIG_INTERRUPT0                  _VECTOR(1)
470
471/* External Interrupt Request 1 */
472#define INT1_vect                       _VECTOR(2)
473#define SIG_INTERRUPT1                  _VECTOR(2)
474
475/* External Interrupt Request 2 */
476#define INT2_vect                       _VECTOR(3)
477#define SIG_INTERRUPT2                  _VECTOR(3)
478
479/* External Interrupt Request 3 */
480#define INT3_vect                       _VECTOR(4)
481#define SIG_INTERRUPT3                  _VECTOR(4)
482
483/* External Interrupt Request 4 */
484#define INT4_vect                       _VECTOR(5)
485#define SIG_INTERRUPT4                  _VECTOR(5)
486
487/* External Interrupt Request 5 */
488#define INT5_vect                       _VECTOR(6)
489#define SIG_INTERRUPT5                  _VECTOR(6)
490
491/* External Interrupt Request 6 */
492#define INT6_vect                       _VECTOR(7)
493#define SIG_INTERRUPT6                  _VECTOR(7)
494
495/* External Interrupt Request 7 */
496#define INT7_vect                       _VECTOR(8)
497#define SIG_INTERRUPT7                  _VECTOR(8)
498
499/* Timer/Counter2 Compare Match */
500#define TIMER2_COMP_vect                _VECTOR(9)
501#define SIG_OUTPUT_COMPARE2             _VECTOR(9)
502
503/* Timer/Counter2 Overflow */
504#define TIMER2_OVF_vect                 _VECTOR(10)
505#define SIG_OVERFLOW2                   _VECTOR(10)
506
507/* Timer/Counter1 Capture Event */
508#define TIMER1_CAPT_vect                _VECTOR(11)
509#define SIG_INPUT_CAPTURE1              _VECTOR(11)
510
511/* Timer/Counter1 Compare Match A */
512#define TIMER1_COMPA_vect               _VECTOR(12)
513#define SIG_OUTPUT_COMPARE1A            _VECTOR(12)
514
515/* Timer/Counter Compare Match B */
516#define TIMER1_COMPB_vect               _VECTOR(13)
517#define SIG_OUTPUT_COMPARE1B            _VECTOR(13)
518
519/* Timer/Counter1 Compare Match C */
520#define TIMER1_COMPC_vect               _VECTOR(14)
521#define SIG_OUTPUT_COMPARE1C            _VECTOR(14)
522
523/* Timer/Counter1 Overflow */
524#define TIMER1_OVF_vect                 _VECTOR(15)
525#define SIG_OVERFLOW1                   _VECTOR(15)
526
527/* Timer/Counter0 Compare Match */
528#define TIMER0_COMP_vect                _VECTOR(16)
529#define SIG_OUTPUT_COMPARE0             _VECTOR(16)
530
531/* Timer/Counter0 Overflow */
532#define TIMER0_OVF_vect                 _VECTOR(17)
533#define SIG_OVERFLOW0                   _VECTOR(17)
534
535/* CAN Transfer Complete or Error */
536#define CANIT_vect                      _VECTOR(18)
537#define SIG_CAN_INTERRUPT1              _VECTOR(18)
538
539/* CAN Timer Overrun */
540#define OVRIT_vect                      _VECTOR(19)
541#define SIG_CAN_OVERFLOW1               _VECTOR(19)
542
543/* SPI Serial Transfer Complete */
544#define SPI_STC_vect                    _VECTOR(20)
545#define SIG_SPI                         _VECTOR(20)
546
547/* USART0, Rx Complete */
548#define USART0_RX_vect                  _VECTOR(21)
549#define SIG_UART0_RECV                  _VECTOR(21)
550#define SIG_USART0_RECV                 _VECTOR(21)
551
552/* USART0 Data Register Empty */
553#define USART0_UDRE_vect                _VECTOR(22)
554#define SIG_UART0_DATA                  _VECTOR(22)
555#define SIG_USART0_DATA                 _VECTOR(22)
556
557/* USART0, Tx Complete */
558#define USART0_TX_vect                  _VECTOR(23)
559#define SIG_UART0_TRANS                 _VECTOR(23)
560#define SIG_USART0_TRANS                _VECTOR(23)
561
562/* Analog Comparator */
563#define ANALOG_COMP_vect                _VECTOR(24)
564#define SIG_COMPARATOR                  _VECTOR(24)
565
566/* ADC Conversion Complete */
567#define ADC_vect                        _VECTOR(25)
568#define SIG_ADC                         _VECTOR(25)
569
570/* EEPROM Ready */
571#define EE_READY_vect                   _VECTOR(26)
572#define SIG_EEPROM_READY                _VECTOR(26)
573
574/* Timer/Counter3 Capture Event */
575#define TIMER3_CAPT_vect                _VECTOR(27)
576#define SIG_INPUT_CAPTURE3              _VECTOR(27)
577
578/* Timer/Counter3 Compare Match A */
579#define TIMER3_COMPA_vect               _VECTOR(28)
580#define SIG_OUTPUT_COMPARE3A            _VECTOR(28)
581
582/* Timer/Counter3 Compare Match B */
583#define TIMER3_COMPB_vect               _VECTOR(29)
584#define SIG_OUTPUT_COMPARE3B            _VECTOR(29)
585
586/* Timer/Counter3 Compare Match C */
587#define TIMER3_COMPC_vect               _VECTOR(30)
588#define SIG_OUTPUT_COMPARE3C            _VECTOR(30)
589
590/* Timer/Counter3 Overflow */
591#define TIMER3_OVF_vect                 _VECTOR(31)
592#define SIG_OVERFLOW3                   _VECTOR(31)
593
594/* USART1, Rx Complete */
595#define USART1_RX_vect                  _VECTOR(32)
596#define SIG_UART1_RECV                  _VECTOR(32)
597#define SIG_USART1_RECV                 _VECTOR(32)
598
599/* USART1, Data Register Empty */
600#define USART1_UDRE_vect                _VECTOR(33)
601#define SIG_UART1_DATA                  _VECTOR(33)
602#define SIG_USART1_DATA                 _VECTOR(33)
603
604/* USART1, Tx Complete */
605#define USART1_TX_vect                  _VECTOR(34)
606#define SIG_UART1_TRANS                 _VECTOR(34)
607#define SIG_USART1_TRANS                _VECTOR(34)
608
609/* 2-wire Serial Interface */
610#define TWI_vect                        _VECTOR(35)
611#define SIG_2WIRE_SERIAL                _VECTOR(35)
612
613/* Store Program Memory Read */
614#define SPM_READY_vect                  _VECTOR(36)
615#define SIG_SPM_READY                   _VECTOR(36)
616
617#define _VECTORS_SIZE 148
618
619/* The Register Bit names are represented by their bit number (0-7). */
620
621/* Register Bits [ASSR]  */
622/* Asynchronous Status Register */
623#define    EXCLK      4
624#define    AS2        3
625#define    TCN2UB     2
626#define    OCR2UB     1
627#define    TCR2UB     0
628/* End Register Bits */
629
630/* Register Bits [TWCR] */
631/* 2-wire Control Register - TWCR */
632#define    TWINT        7
633#define    TWEA         6
634#define    TWSTA        5
635#define    TWSTO        4
636#define    TWWC         3
637#define    TWEN         2
638#define    TWIE         0
639/* End Register Bits */
640
641/* Register Bits [TWAR]  */
642/* 2-wire Address Register - TWAR */
643#define    TWA6         7
644#define    TWA5         6
645#define    TWA4         5
646#define    TWA3         4
647#define    TWA2         3
648#define    TWA1         2
649#define    TWA0         1
650#define    TWGCE        0
651/* End Register Bits */
652
653/* Register Bits [TWSR]  */
654/* 2-wire Status Register - TWSR */
655#define    TWS7         7
656#define    TWS6         6
657#define    TWS5         5
658#define    TWS4         4
659#define    TWS3         3
660#define    TWPS1        1
661#define    TWPS0        0
662/* End Register Bits */
663
664/* Register Bits [XMCRB]  */
665/* External Memory Control Register B - XMCRB */
666#define    XMBK         7
667#define    XMM2         2
668#define    XMM1         1
669#define    XMM0         0
670/* End Register Bits */
671
672/* Register Bits [XMCRA]  */
673/* External Memory Control Register A - XMCRA */
674#define    SRE         7
675#define    SRL2        6
676#define    SRL1        5
677#define    SRL0        4
678#define    SRW11       3
679#define    SRW10       2
680#define    SRW01       1
681#define    SRW00       0
682/* End Register Bits */
683
684/* Register Bits [RAMPZ]  */
685/* RAM Page Z select register - RAMPZ */
686#define     RAMPZ0      0
687/* End Register Bits */
688
689/* Register Bits [EICRA]  */
690/* External Interrupt Control Register A - EICRA */
691#define    ISC31        7
692#define    ISC30        6
693#define    ISC21        5
694#define    ISC20        4
695#define    ISC11        3
696#define    ISC10        2
697#define    ISC01        1
698#define    ISC00        0
699/* End Register Bits */
700
701/* Register Bits [EICRB]  */
702/* External Interrupt Control Register B - EICRB */
703#define    ISC71        7
704#define    ISC70        6
705#define    ISC61        5
706#define    ISC60        4
707#define    ISC51        3
708#define    ISC50        2
709#define    ISC41        1
710#define    ISC40        0
711/* End Register Bits */
712
713/* Register Bits [SPMCSR]  */
714/* Store Program Memory Control Register - SPMCSR, SPMCR */
715#define    SPMIE        7
716#define    RWWSB        6
717#define    RWWSRE       4
718#define    BLBSET       3
719#define    PGWRT        2
720#define    PGERS        1
721#define    SPMEN        0
722/* End Register Bits */
723
724/* Register Bits [EIMSK]  */
725/* External Interrupt MaSK register - EIMSK */
726#define    INT7         7
727#define    INT6         6
728#define    INT5         5
729#define    INT4         4
730#define    INT3         3
731#define    INT2         2
732#define    INT1         1
733#define    INT0         0
734/* End Register Bits */
735
736/* Register Bits [EIFR]  */
737/* External Interrupt Flag Register - EIFR */
738#define    INTF7        7
739#define    INTF6        6
740#define    INTF5        5
741#define    INTF4        4
742#define    INTF3        3
743#define    INTF2        2
744#define    INTF1        1
745#define    INTF0        0
746/* End Register Bits */
747
748/* Register Bits [TCCR2]  */
749/* Timer/Counter 2 Control Register - TCCR2 */
750#define    FOC2A        7
751#define    WGM20        6
752#define    COM2A1       5
753#define    COM2A0       4
754#define    WGM21        3
755#define    CS22         2
756#define    CS21         1
757#define    CS20         0
758/* End Register Bits */
759
760/* Register Bits [TCCR1A]  */
761/* Timer/Counter 1 Control and Status Register A - TCCR1A */
762#define    COM1A1       7
763#define    COM1A0       6
764#define    COM1B1       5
765#define    COM1B0       4
766#define    COM1C1       3
767#define    COM1C0       2
768#define    WGM11        1
769#define    WGM10        0
770/* End Register Bits */
771
772/* Register Bits [TCCR3A]  */
773/* Timer/Counter 3 Control and Status Register A - TCCR3A */
774#define    COM3A1       7
775#define    COM3A0       6
776#define    COM3B1       5
777#define    COM3B0       4
778#define    COM3C1       3
779#define    COM3C0       2
780#define    WGM31        1
781#define    WGM30        0
782/* End Register Bits */
783
784/* Register Bits [TCCR1B]  */
785/* Timer/Counter 1 Control and Status Register B - TCCR1B */
786#define    ICNC1        7
787#define    ICES1        6
788#define    WGM13        4
789#define    WGM12        3
790#define    CS12         2
791#define    CS11         1
792#define    CS10         0
793/* End Register Bits */
794
795/* Register Bits [TCCR3B]  */
796/* Timer/Counter 3 Control and Status Register B - TCCR3B */
797#define    ICNC3        7
798#define    ICES3        6
799#define    WGM33        4
800#define    WGM32        3
801#define    CS32         2
802#define    CS31         1
803#define    CS30         0
804/* End Register Bits */
805
806/* Register Bits [TCCR3C]  */
807/* Timer/Counter 3 Control Register C - TCCR3C */
808#define    FOC3A        7
809#define    FOC3B        6
810#define    FOC3C        5
811/* End Register Bits */
812
813/* Register Bits [TCCR1C]  */
814/* Timer/Counter 1 Control Register C - TCCR1C */
815#define    FOC1A        7
816#define    FOC1B        6
817#define    FOC1C        5
818/* End Register Bits */
819
820/* Register Bits [OCDR]  */
821/* On-chip Debug Register - OCDR */
822#define    IDRD         7
823#define    OCDR7        7
824#define    OCDR6        6
825#define    OCDR5        5
826#define    OCDR4        4
827#define    OCDR3        3
828#define    OCDR2        2
829#define    OCDR1        1
830#define    OCDR0        0
831/* End Register Bits */
832
833/* Register Bits [WDTCR]  */
834/* Watchdog Timer Control Register - WDTCR */
835#define    WDCE         4
836#define    WDE          3
837#define    WDP2         2
838#define    WDP1         1
839#define    WDP0         0
840/* End Register Bits */
841
842/* Register Bits [SPSR]  */
843/* SPI Status Register - SPSR */
844#define    SPIF         7
845#define    WCOL         6
846#define    SPI2X        0
847/* End Register Bits */
848
849/* Register Bits [SPCR]  */
850/* SPI Control Register - SPCR */
851#define    SPIE         7
852#define    SPE          6
853#define    DORD         5
854#define    MSTR         4
855#define    CPOL         3
856#define    CPHA         2
857#define    SPR1         1
858#define    SPR0         0
859/* End Register Bits */
860
861/* Register Bits [UCSR1C]  */
862/* USART1 Register C - UCSR1C */
863#define    UMSEL1       6
864#define    UPM11        5
865#define    UPM10        4
866#define    USBS1        3
867#define    UCSZ11       2
868#define    UCSZ10       1
869#define    UCPOL1       0
870/* End Register Bits */
871
872/* Register Bits [UCSR0C]  */
873/* USART0 Register C - UCSR0C */
874#define    UMSEL0       6
875#define    UPM01        5
876#define    UPM00        4
877#define    USBS0        3
878#define    UCSZ01       2
879#define    UCSZ00       1
880#define    UCPOL0       0
881/* End Register Bits */
882
883/* Register Bits [UCSR1A]  */
884/* USART1 Status Register A - UCSR1A */
885#define    RXC1         7
886#define    TXC1         6
887#define    UDRE1        5
888#define    FE1          4
889#define    DOR1         3
890#define    UPE1         2
891#define    U2X1         1
892#define    MPCM1        0
893/* End Register Bits */
894
895/* Register Bits [UCSR0A]  */
896/* USART0 Status Register A - UCSR0A */
897#define    RXC0         7
898#define    TXC0         6
899#define    UDRE0        5
900#define    FE0          4
901#define    DOR0         3
902#define    UPE0         2
903#define    U2X0         1
904#define    MPCM0        0
905/* End Register Bits */
906
907/* Register Bits [UCSR1B]  */
908/* USART1 Control Register B - UCSR1B */
909#define    RXCIE1       7
910#define    TXCIE1       6
911#define    UDRIE1       5
912#define    RXEN1        4
913#define    TXEN1        3
914#define    UCSZ12       2
915#define    RXB81        1
916#define    TXB81        0
917/* End Register Bits */
918
919/* Register Bits [UCSR0B]  */
920/* USART0 Control Register B - UCSR0B */
921#define    RXCIE0       7
922#define    TXCIE0       6
923#define    UDRIE0       5
924#define    RXEN0        4
925#define    TXEN0        3
926#define    UCSZ02       2
927#define    RXB80        1
928#define    TXB80        0
929/* End Register Bits */
930
931/* Register Bits [ACSR]  */
932/* Analog Comparator Control and Status Register - ACSR */
933#define    ACD          7
934#define    ACBG         6
935#define    ACO          5
936#define    ACI          4
937#define    ACIE         3
938#define    ACIC         2
939#define    ACIS1        1
940#define    ACIS0        0
941/* End Register Bits */
942
943/* Register Bits [ADCSRA]  */
944/* ADC Control and status register - ADCSRA */
945#define    ADEN         7
946#define    ADSC         6
947#define    ADATE        5
948#define    ADIF         4
949#define    ADIE         3
950#define    ADPS2        2
951#define    ADPS1        1
952#define    ADPS0        0
953/* End Register Bits */
954
955/*
956   The ADHSM bit has been removed from all documentation,
957   as being not needed at all since the comparator has proven
958   to be fast enough even without feeding it more power.
959*/
960
961/* Register Bits [ADCSRB]  */
962/* ADC Control and status register - ADCSRB */
963#define    ACME         6
964#define    ADTS2        2
965#define    ADTS1        1
966#define    ADTS0        0
967/* End Register Bits */
968
969/* Register Bits [ADMUX]  */
970/* ADC Multiplexer select - ADMUX */
971#define    REFS1        7
972#define    REFS0        6
973#define    ADLAR        5
974#define    MUX4         4
975#define    MUX3         3
976#define    MUX2         2
977#define    MUX1         1
978#define    MUX0         0
979/* End Register Bits */
980
981/* Register Bits [DIDR0]  */
982/* Digital Input Disable Register 0 */
983#define    ADC7D        7
984#define    ADC6D        6
985#define    ADC5D        5
986#define    ADC4D        4
987#define    ADC3D        3
988#define    ADC2D        2
989#define    ADC1D        1
990#define    ADC0D        0
991/* End Register Bits */
992
993/* Register Bits [DIDR1]  */
994/* Digital Input Disable Register 1 */
995#define    AIN1D        1
996#define    AIN0D        0
997/* End Register Bits */
998
999/* Register Bits [PORTA]  */
1000/* Port A Data Register - PORTA */
1001#define    PA7          7
1002#define    PA6          6
1003#define    PA5          5
1004#define    PA4          4
1005#define    PA3          3
1006#define    PA2          2
1007#define    PA1          1
1008#define    PA0          0
1009/* End Register Bits */
1010
1011/* Register Bits [DDRA]  */
1012/* Port A Data Direction Register - DDRA */
1013#define    DDA7         7
1014#define    DDA6         6
1015#define    DDA5         5
1016#define    DDA4         4
1017#define    DDA3         3
1018#define    DDA2         2
1019#define    DDA1         1
1020#define    DDA0         0
1021/* End Register Bits */
1022
1023/* Register Bits [PINA]  */
1024/* Port A Input Pins - PINA */
1025#define    PINA7        7
1026#define    PINA6        6
1027#define    PINA5        5
1028#define    PINA4        4
1029#define    PINA3        3
1030#define    PINA2        2
1031#define    PINA1        1
1032#define    PINA0        0
1033/* End Register Bits */
1034
1035/* Register Bits [PORTB]  */
1036/* Port B Data Register - PORTB */
1037#define    PB7          7
1038#define    PB6          6
1039#define    PB5          5
1040#define    PB4          4
1041#define    PB3          3
1042#define    PB2          2
1043#define    PB1          1
1044#define    PB0          0
1045/* End Register Bits */
1046
1047/* Register Bits [DDRB]  */
1048/* Port B Data Direction Register - DDRB */
1049#define    DDB7         7
1050#define    DDB6         6
1051#define    DDB5         5
1052#define    DDB4         4
1053#define    DDB3         3
1054#define    DDB2         2
1055#define    DDB1         1
1056#define    DDB0         0
1057/* End Register Bits */
1058
1059/* Register Bits [PINB]  */
1060/* Port B Input Pins - PINB */
1061#define    PINB7        7
1062#define    PINB6        6
1063#define    PINB5        5
1064#define    PINB4        4
1065#define    PINB3        3
1066#define    PINB2        2
1067#define    PINB1        1
1068#define    PINB0        0
1069/* End Register Bits */
1070
1071/* Register Bits [PORTC]  */
1072/* Port C Data Register - PORTC */
1073#define    PC7          7
1074#define    PC6          6
1075#define    PC5          5
1076#define    PC4          4
1077#define    PC3          3
1078#define    PC2          2
1079#define    PC1          1
1080#define    PC0          0
1081/* End Register Bits */
1082
1083/* Register Bits [DDRC]  */
1084/* Port C Data Direction Register - DDRC */
1085#define    DDC7         7
1086#define    DDC6         6
1087#define    DDC5         5
1088#define    DDC4         4
1089#define    DDC3         3
1090#define    DDC2         2
1091#define    DDC1         1
1092#define    DDC0         0
1093/* End Register Bits */
1094
1095/* Register Bits [PINC]  */
1096/* Port C Input Pins - PINC */
1097#define    PINC7        7
1098#define    PINC6        6
1099#define    PINC5        5
1100#define    PINC4        4
1101#define    PINC3        3
1102#define    PINC2        2
1103#define    PINC1        1
1104#define    PINC0        0
1105/* End Register Bits */
1106
1107/* Register Bits [PORTD]  */
1108/* Port D Data Register - PORTD */
1109#define    PD7          7
1110#define    PD6          6
1111#define    PD5          5
1112#define    PD4          4
1113#define    PD3          3
1114#define    PD2          2
1115#define    PD1          1
1116#define    PD0          0
1117/* End Register Bits */
1118
1119/* Register Bits [DDRD]  */
1120/* Port D Data Direction Register - DDRD */
1121#define    DDD7         7
1122#define    DDD6         6
1123#define    DDD5         5
1124#define    DDD4         4
1125#define    DDD3         3
1126#define    DDD2         2
1127#define    DDD1         1
1128#define    DDD0         0
1129/* End Register Bits */
1130
1131/* Register Bits [PIND]  */
1132/* Port D Input Pins - PIND */
1133#define    PIND7        7
1134#define    PIND6        6
1135#define    PIND5        5
1136#define    PIND4        4
1137#define    PIND3        3
1138#define    PIND2        2
1139#define    PIND1        1
1140#define    PIND0        0
1141/* End Register Bits */
1142
1143/* Register Bits [PORTE]  */
1144/* Port E Data Register - PORTE */
1145#define    PE7          7
1146#define    PE6          6
1147#define    PE5          5
1148#define    PE4          4
1149#define    PE3          3
1150#define    PE2          2
1151#define    PE1          1
1152#define    PE0          0
1153/* End Register Bits */
1154
1155/* Register Bits [DDRE]  */
1156/* Port E Data Direction Register - DDRE */
1157#define    DDE7         7
1158#define    DDE6         6
1159#define    DDE5         5
1160#define    DDE4         4
1161#define    DDE3         3
1162#define    DDE2         2
1163#define    DDE1         1
1164#define    DDE0         0
1165/* End Register Bits */
1166
1167/* Register Bits [PINE]  */
1168/* Port E Input Pins - PINE */
1169#define    PINE7        7
1170#define    PINE6        6
1171#define    PINE5        5
1172#define    PINE4        4
1173#define    PINE3        3
1174#define    PINE2        2
1175#define    PINE1        1
1176#define    PINE0        0
1177/* End Register Bits */
1178
1179/* Register Bits [PORTF]  */
1180/* Port F Data Register - PORTF */
1181#define    PF7          7
1182#define    PF6          6
1183#define    PF5          5
1184#define    PF4          4
1185#define    PF3          3
1186#define    PF2          2
1187#define    PF1          1
1188#define    PF0          0
1189/* End Register Bits */
1190
1191/* Register Bits [DDRF]  */
1192/* Port F Data Direction Register - DDRF */
1193#define    DDF7         7
1194#define    DDF6         6
1195#define    DDF5         5
1196#define    DDF4         4
1197#define    DDF3         3
1198#define    DDF2         2
1199#define    DDF1         1
1200#define    DDF0         0
1201/* End Register Bits */
1202
1203/* Register Bits [PINF]  */
1204/* Port F Input Pins - PINF */
1205#define    PINF7        7
1206#define    PINF6        6
1207#define    PINF5        5
1208#define    PINF4        4
1209#define    PINF3        3
1210#define    PINF2        2
1211#define    PINF1        1
1212#define    PINF0        0
1213/* End Register Bits */
1214
1215/* Register Bits [PORTG]  */
1216/* Port G Data Register - PORTG */
1217#define    PG4          4
1218#define    PG3          3
1219#define    PG2          2
1220#define    PG1          1
1221#define    PG0          0
1222/* End Register Bits */
1223
1224/* Register Bits [DDRG]  */
1225/* Port G Data Direction Register - DDRG */
1226#define    DDG4         4
1227#define    DDG3         3
1228#define    DDG2         2
1229#define    DDG1         1
1230#define    DDG0         0
1231/* End Register Bits */
1232
1233/* Register Bits [PING]  */
1234/* Port G Input Pins - PING */
1235#define    PING4        4
1236#define    PING3        3
1237#define    PING2        2
1238#define    PING1        1
1239#define    PING0        0
1240/* End Register Bits */
1241
1242
1243/* Register Bits [TIFR0]  */
1244/* Timer/Counter 0 interrupt Flag Register */
1245#define    OCF0A        1
1246#define    TOV0         0
1247/* End Register Bits */
1248
1249/* Register Bits [TIFR1]  */
1250/* Timer/Counter 1 interrupt Flag Register */
1251#define    ICF1       5
1252#define    OCF1C      3
1253#define    OCF1B      2
1254#define    OCF1A      1
1255#define    TOV1       0
1256/* End Register Bits */
1257
1258/* Register Bits [TIFR2]  */
1259/* Timer/Counter 2 interrupt Flag Register */
1260#define    OCF2A      1
1261#define    TOV2       0
1262/* End Register Bits */
1263
1264/* Register Bits [TIFR3]  */
1265/* Timer/Counter 3 interrupt Flag Register */
1266#define    ICF3       5
1267#define    OCF3C      3
1268#define    OCF3B      2
1269#define    OCF3A      1
1270#define    TOV3       0
1271/* End Register Bits */
1272
1273/* Register Bits [GPIOR0]  */
1274/* General Purpose I/O Register 0 */
1275#define    GPIOR07     7
1276#define    GPIOR06     6
1277#define    GPIOR05     5
1278#define    GPIOR04     4
1279#define    GPIOR03     3
1280#define    GPIOR02     2
1281#define    GPIOR01     1
1282#define    GPIOR00     0
1283/* End Register Bits */
1284
1285/* Register Bits [GPIOR1]  */
1286/* General Purpose I/O Register 1 */
1287#define    GPIOR17     7
1288#define    GPIOR16     6
1289#define    GPIOR15     5
1290#define    GPIOR14     4
1291#define    GPIOR13     3
1292#define    GPIOR12     2
1293#define    GPIOR11     1
1294#define    GPIOR10     0
1295/* End Register Bits */
1296
1297/* Register Bits [GPIOR2]  */
1298/* General Purpose I/O Register 2 */
1299#define    GPIOR27     7
1300#define    GPIOR26     6
1301#define    GPIOR25     5
1302#define    GPIOR24     4
1303#define    GPIOR23     3
1304#define    GPIOR22     2
1305#define    GPIOR21     1
1306#define    GPIOR20     0
1307/* End Register Bits */
1308
1309/* Register Bits [EECR]  */
1310/* EEPROM Control Register */
1311#define    EERIE       3
1312#define    EEMWE       2
1313#define    EEWE        1
1314#define    EERE        0
1315/* End Register Bits */
1316
1317/* Register Bits [EEDR]  */
1318/* EEPROM Data Register */
1319#define    EEDR7     7
1320#define    EEDR6     6
1321#define    EEDR5     5
1322#define    EEDR4     4
1323#define    EEDR3     3
1324#define    EEDR2     2
1325#define    EEDR1     1
1326#define    EEDR0     0
1327/* End Register Bits */
1328
1329/* Register Bits [EEARL]  */
1330/* EEPROM Address Register */
1331#define    EEAR7     7
1332#define    EEAR6     6
1333#define    EEAR5     5
1334#define    EEAR4     4
1335#define    EEAR3     3
1336#define    EEAR2     2
1337#define    EEAR1     1
1338#define    EEAR0     0
1339/* End Register Bits */
1340
1341/* Register Bits [EEARH]  */
1342/* EEPROM Address Register */
1343#define    EEAR11    3
1344#define    EEAR10    2
1345#define    EEAR9     1
1346#define    EEAR8     0
1347/* End Register Bits */
1348
1349/* Register Bits [GTCCR]  */
1350/* General Timer/Counter Control Register  */
1351#define    TSM      7
1352#define    PSR2     1
1353#define    PSR310   0
1354/* End Register Bits */
1355
1356/* Register Bits [TCCR0A]  */
1357/* Timer/Counter Control Register A */
1358/* ALSO COVERED IN GENERIC SECTION */
1359#define    FOC0A    7
1360#define    WGM00    6
1361#define    COM0A1   5
1362#define    COM0A0   4
1363#define    WGM01    3
1364#define    CS02     2
1365#define    CS01     1
1366#define    CS00     0
1367/* End Register Bits */
1368
1369/* Register Bits [OCR0A]  */
1370/* Output Compare Register A */
1371#define    OCR0A7     7
1372#define    OCR0A6     6
1373#define    OCR0A5     5
1374#define    OCR0A4     4
1375#define    OCR0A3     3
1376#define    OCR0A2     2
1377#define    OCR0A1     1
1378#define    OCR0A0     0
1379/* End Register Bits */
1380
1381
1382/* Register Bits [SPIDR]  */
1383/* SPI Data Register */
1384#define    SPD7     7
1385#define    SPD6     6
1386#define    SPD5     5
1387#define    SPD4     4
1388#define    SPD3     3
1389#define    SPD2     2
1390#define    SPD1     1
1391#define    SPD0     0
1392/* End Register Bits */
1393
1394/* Register Bits [SMCR]  */
1395/* Sleep Mode Control Register */
1396#define    SM2     3
1397#define    SM1     2
1398#define    SM0     1
1399#define    SE      0
1400/* End Register Bits */
1401
1402/* Register Bits [MCUSR]  */
1403/* MCU Status Register */
1404#define    JTRF    4
1405#define    WDRF    3
1406#define    BORF    2
1407#define    EXTRF   1
1408#define    PORF    0
1409/* End Register Bits */
1410
1411/* Register Bits [MCUCR]  */
1412/* MCU Control Register */
1413#define    JTD     7
1414#define    PUD     4
1415#define    IVSEL   1
1416#define    IVCE    0
1417/* End Register Bits */
1418
1419/* Register Bits [CLKPR]  */
1420/* Clock Prescale Register */
1421#define    CLKPCE     7
1422#define    CLKPS3     3
1423#define    CLKPS2     2
1424#define    CLKPS1     1
1425#define    CLKPS0     0
1426/* End Register Bits */
1427
1428/* Register Bits [OSCCAL]  */
1429/* Oscillator Calibration Register */
1430#define    CAL6     6
1431#define    CAL5     5
1432#define    CAL4     4
1433#define    CAL3     3
1434#define    CAL2     2
1435#define    CAL1     1
1436#define    CAL0     0
1437/* End Register Bits */
1438
1439/* Register Bits [TIMSK0]  */
1440/* Timer/Counter 0 interrupt mask Register */
1441#define    OCIE0A      1
1442#define    TOIE0       0
1443/* End Register Bits */
1444
1445/* Register Bits [TIMSK1]  */
1446/* Timer/Counter 1 interrupt mask Register */
1447#define    ICIE1       5
1448#define    OCIE1C      3
1449#define    OCIE1B      2
1450#define    OCIE1A      1
1451#define    TOIE1       0
1452/* End Register Bits */
1453
1454/* Register Bits [TIMSK2]  */
1455/* Timer/Counter 2 interrupt mask Register */
1456#define    OCIE2A      1
1457#define    TOIE2       0
1458/* End Register Bits */
1459
1460/* Register Bits [TIMSK3]  */
1461/* Timer/Counter 3 interrupt mask Register */
1462#define    ICIE3       5
1463#define    OCIE3C      3
1464#define    OCIE3B      2
1465#define    OCIE3A      1
1466#define    TOIE3       0
1467/* End Register Bits */
1468
1469//Begin CAN specific parts
1470
1471/* Register Bits [CANGCON]  */
1472/* CAN General Control Register */
1473#define    ABRQ       7
1474#define    OVRQ       6
1475#define    TTC        5
1476#define    SYNTTC     4
1477#define    LISTEN     3
1478#define    TEST       2
1479#define    ENASTB     1
1480#define    SWRES      0
1481/* End Register Bits */
1482
1483/* Register Bits [CANGSTA]  */
1484/* CAN General Status Register */
1485#define    OVFG       6
1486#define    OVRG       6
1487#define    TXBSY      4
1488#define    RXBSY      3
1489#define    ENFG       2
1490#define    BOFF       1
1491#define    ERRP       0
1492/* End Register Bits */
1493
1494/* Register Bits [CANGIT]  */
1495/* CAN General Interrupt Register */
1496#define    CANIT      7
1497#define    BOFFIT     6
1498#define    OVRTIM     5
1499#define    BXOK       4
1500#define    SERG       3
1501#define    CERG       2
1502#define    FERG       1
1503#define    AERG       0
1504/* End Register Bits */
1505
1506/* Register Bits [CANGIE]  */
1507/* CAN General Interrupt Enable */
1508#define    ENIT        7
1509#define    ENBOFF      6
1510#define    ENRX        5
1511#define    ENTX        4
1512#define    ENERR       3
1513#define    ENBX        2
1514#define    ENERG       1
1515#define    ENOVRT      0
1516/* End Register Bits */
1517
1518/* Register Bits [CANEN2]  */
1519/* CAN Enable MOb Register */
1520#define    ENMOB7      7
1521#define    ENMOB6      6
1522#define    ENMOB5      5
1523#define    ENMOB4      4
1524#define    ENMOB3      3
1525#define    ENMOB2      2
1526#define    ENMOB1      1
1527#define    ENMOB0      0
1528/* End Register Bits */
1529
1530/* Register Bits [CANEN1]  */
1531/* CAN Enable MOb Register */
1532#define    ENMOB14      6
1533#define    ENMOB13      5
1534#define    ENMOB12      4
1535#define    ENMOB11      3
1536#define    ENMOB10      2
1537#define    ENMOB9       1
1538#define    ENMOB8       0
1539/* End Register Bits */
1540
1541/* Register Bits [CANIE2]  */
1542/* CAN Interrupt Enable MOb Register */
1543#define    IEMOB7      7
1544#define    IEMOB6      6
1545#define    IEMOB5      5
1546#define    IEMOB4      4
1547#define    IEMOB3      3
1548#define    IEMOB2      2
1549#define    IEMOB1      1
1550#define    IEMOB0      0
1551/* End Register Bits */
1552
1553/* Register Bits [CANIE1]  */
1554/* CAN Interrupt Enable MOb Register */
1555#define    IEMOB14      6
1556#define    IEMOB13      5
1557#define    IEMOB12      4
1558#define    IEMOB11      3
1559#define    IEMOB10      2
1560#define    IEMOB9       1
1561#define    IEMOB8       0
1562/* End Register Bits */
1563
1564/* Register Bits [CANSIT2]  */
1565/* CAN Status Interrupt MOb Register */
1566#define    SIT7      7
1567#define    SIT6      6
1568#define    SIT5      5
1569#define    SIT4      4
1570#define    SIT3      3
1571#define    SIT2      2
1572#define    SIT1      1
1573#define    SIT0      0
1574/* End Register Bits */
1575
1576/* Register Bits [CANSIT1]  */
1577/* CAN Status Interrupt MOb Register */
1578#define    SIT14      6
1579#define    SIT13      5
1580#define    SIT12      4
1581#define    SIT11      3
1582#define    SIT10      2
1583#define    SIT9       1
1584#define    SIT8       0
1585/* End Register Bits */
1586
1587/* Register Bits [CANBT1]  */
1588/* Bit Timing Register 1 */
1589#define    BRP5       6
1590#define    BRP4       5
1591#define    BRP3       4
1592#define    BRP2       3
1593#define    BRP1       2
1594#define    BRP0       1
1595/* End Register Bits */
1596
1597/* Register Bits [CANBT2]  */
1598/* Bit Timing Register 2 */
1599#define    SJW1       6
1600#define    SJW0       5
1601#define    PRS2       3
1602#define    PRS1       2
1603#define    PRS0       1
1604/* End Register Bits */
1605
1606/* Register Bits [CANBT3]  */
1607/* Bit Timing Register 3 */
1608#define    PHS22      6
1609#define    PHS21      5
1610#define    PHS20      4
1611#define    PHS12      3
1612#define    PHS11      2
1613#define    PHS10      1
1614#define    SMP        0
1615/* End Register Bits */
1616
1617/* Register Bits [CANTCON]  */
1618/* CAN Timer Control Register */
1619#define    TPRSC7      7
1620#define    TPRSC6      6
1621#define    TPRSC5      5
1622#define    TPRSC4      4
1623#define    TPRSC3      3
1624#define    TPRSC2      2
1625#define    TPRSC1      1
1626#define    TPRSC0      0
1627/* End Register Bits */
1628
1629/* Register Bits [CANTIML]  */
1630/* CAN Timer Register Low */
1631#define    CANTIM7      7
1632#define    CANTIM6      6
1633#define    CANTIM5      5
1634#define    CANTIM4      4
1635#define    CANTIM3      3
1636#define    CANTIM2      2
1637#define    CANTIM1      1
1638#define    CANTIM0      0
1639/* End Register Bits */
1640
1641/* Register Bits [CANTIMH]  */
1642/* CAN Timer Register High */
1643#define    CANTIM15     7
1644#define    CANTIM14     6
1645#define    CANTIM13     5
1646#define    CANTIM12     4
1647#define    CANTIM11     3
1648#define    CANTIM10     2
1649#define    CANTIM9      1
1650#define    CANTIM8      0
1651/* End Register Bits */
1652
1653/* Register Bits [CANTTCL]  */
1654/* CAN TTC Timer Register Low */
1655#define    TIMTTC7      7
1656#define    TIMTTC6      6
1657#define    TIMTTC5      5
1658#define    TIMTTC4      4
1659#define    TIMTTC3      3
1660#define    TIMTTC2      2
1661#define    TIMTTC1      1
1662#define    TIMTTC0      0
1663/* End Register Bits */
1664
1665/* Register Bits [CANTTCH]  */
1666/* CAN TTC Timer Register High */
1667#define    TIMTTC15     7
1668#define    TIMTTC14     6
1669#define    TIMTTC13     5
1670#define    TIMTTC12     4
1671#define    TIMTTC11     3
1672#define    TIMTTC10     2
1673#define    TIMTTC9      1
1674#define    TIMTTC8      0
1675/* End Register Bits */
1676
1677/* Register Bits [CANTEC]  */
1678/* CAN Transmitt Error Counter */
1679#define    TEC7      7
1680#define    TEC6      6
1681#define    TEC5      5
1682#define    TEC4      4
1683#define    TEC3      3
1684#define    TEC2      2
1685#define    TEC1      1
1686#define    TEC0      0
1687/* End Register Bits */
1688
1689/* Register Bits [CANREC]  */
1690/* CAN Receive Error Counter */
1691#define    REC7      7
1692#define    REC6      6
1693#define    REC5      5
1694#define    REC4      4
1695#define    REC3      3
1696#define    REC2      2
1697#define    REC1      1
1698#define    REC0      0
1699/* End Register Bits */
1700
1701/* Register Bits [CANHPMOB]  */
1702/* Highest Priority MOb */
1703#define    HPMOB3     7
1704#define    HPMOB2     6
1705#define    HPMOB1     5
1706#define    HPMOB0     4
1707#define    CGP3       3
1708#define    CGP2       2
1709#define    CGP1       1
1710#define    CGP0       0
1711/* End Register Bits */
1712
1713/* Register Bits [CANPAGE]  */
1714/* CAN Page MOb Register */
1715#define    MOBNB3     7
1716#define    MOBNB2     6
1717#define    MOBNB1     5
1718#define    MOBNB0     4
1719#define    AINC       3
1720#define    INDX2      2
1721#define    INDX1      1
1722#define    INDX0      0
1723/* End Register Bits */
1724
1725/* Register Bits [CANSTMOB]  */
1726/* CAN MOb Status Register */
1727#define    DLCW       7
1728#define    TXOK       6
1729#define    RXOK       5
1730#define    BERR       4
1731#define    SERR       3
1732#define    CERR       2
1733#define    FERR       1
1734#define    AERR       0
1735/* End Register Bits */
1736
1737/* Register Bits [CANCDMOB]  */
1738/* CAN MOb Control and DLC Register */
1739#define    CONMOB1    7
1740#define    CONMOB0    6
1741#define    RPLV       5
1742#define    IDE        4
1743#define    DLC3       3
1744#define    DLC2       2
1745#define    DLC1       1
1746#define    DLC0       0
1747/* End Register Bits */
1748
1749/* Register Bits [CANIDT4]  */
1750/* CAN Identifier Tag Register 4 */
1751#define    IDT4       7
1752#define    IDT3       6
1753#define    IDT2       5
1754#define    IDT1       4
1755#define    IDT0       3
1756#define    RTRTAG     2
1757#define    RB1TAG     1
1758#define    RB0TAG     0
1759/* End Register Bits */
1760
1761/* Register Bits [CANIDT3]  */
1762/* CAN Identifier Tag Register 3 */
1763#define    IDT12      7
1764#define    IDT11      6
1765#define    IDT10      5
1766#define    IDT9       4
1767#define    IDT8       3
1768#define    IDT7       2
1769#define    IDT6       1
1770#define    IDT5       0
1771/* End Register Bits */
1772
1773/* Register Bits [CANIDT2]  */
1774/* CAN Identifier Tag Register 2 */
1775#define    IDT20      7
1776#define    IDT19      6
1777#define    IDT18      5
1778#define    IDT17      4
1779#define    IDT16      3
1780#define    IDT15      2
1781#define    IDT14      1
1782#define    IDT13      0
1783/* End Register Bits */
1784
1785/* Register Bits [CANIDT1]  */
1786/* CAN Identifier Tag Register 1 */
1787#define    IDT28      7
1788#define    IDT27      6
1789#define    IDT26      5
1790#define    IDT25      4
1791#define    IDT24      3
1792#define    IDT23      2
1793#define    IDT22      1
1794#define    IDT21      0
1795/* End Register Bits */
1796
1797/* Register Bits [CANIDM4]  */
1798/* CAN Identifier Mask Register 4 */
1799#define    IDMSK4       7
1800#define    IDMSK3       6
1801#define    IDMSK2       5
1802#define    IDMSK1       4
1803#define    IDMSK0       3
1804#define    RTRMSK       2
1805#define    IDEMSK       0
1806/* End Register Bits */
1807
1808/* Register Bits [CANIDM3]  */
1809/* CAN Identifier Mask Register 3 */
1810#define    IDMSK12      7
1811#define    IDMSK11      6
1812#define    IDMSK10      5
1813#define    IDMSK9       4
1814#define    IDMSK8       3
1815#define    IDMSK7       2
1816#define    IDMSK6       1
1817#define    IDMSK5       0
1818/* End Register Bits */
1819
1820/* Register Bits [CANIDM2]  */
1821/* CAN Identifier Mask Register 2 */
1822#define    IDMSK20      7
1823#define    IDMSK19      6
1824#define    IDMSK18      5
1825#define    IDMSK17      4
1826#define    IDMSK16      3
1827#define    IDMSK15      2
1828#define    IDMSK14      1
1829#define    IDMSK13      0
1830/* End Register Bits */
1831
1832/* Register Bits [CANIDM1]  */
1833/* CAN Identifier Mask Register 1 */
1834#define    IDMSK28      7
1835#define    IDMSK27      6
1836#define    IDMSK26      5
1837#define    IDMSK25      4
1838#define    IDMSK24      3
1839#define    IDMSK23      2
1840#define    IDMSK22      1
1841#define    IDMSK21      0
1842/* End Register Bits */
1843
1844/* Register Bits [CANSTML]  */
1845/* CAN Timer Register of some sort, low*/
1846#define    TIMSTM7       7
1847#define    TIMSTM6       6
1848#define    TIMSTM5       5
1849#define    TIMSTM4       4
1850#define    TIMSTM3       3
1851#define    TIMSTM2       2
1852#define    TIMSTM1       1
1853#define    TIMSTM0       0
1854/* End Register Bits */
1855
1856/* Register Bits [CANSTMH]  */
1857/* CAN Timer Register of some sort, high */
1858#define    TIMSTM15       7
1859#define    TIMSTM14       6
1860#define    TIMSTM13       5
1861#define    TIMSTM12       4
1862#define    TIMSTM11       3
1863#define    TIMSTM10       2
1864#define    TIMSTM9        1
1865#define    TIMSTM8        0
1866/* End Register Bits */
1867
1868/* Register Bits [CANMSG]  */
1869/* CAN Message Register */
1870#define    MSG7           7
1871#define    MSG6           6
1872#define    MSG5           5
1873#define    MSG4           4
1874#define    MSG3           3
1875#define    MSG2           2
1876#define    MSG1           1
1877#define    MSG0           0
1878/* End Register Bits */
1879
1880/* Begin Verbatim */
1881
1882/* Timer/Counter Control Register (generic) */
1883#define    FOC          7
1884#define    WGM0         6
1885#define    COM1         5
1886#define    COM0         4
1887#define    WGM1         3
1888#define    CS2          2
1889#define    CS1          1
1890#define    CS0          0
1891
1892/* Timer/Counter Control Register A (generic) */
1893#define    COMA1        7
1894#define    COMA0        6
1895#define    COMB1        5
1896#define    COMB0        4
1897#define    COMC1        3
1898#define    COMC0        2
1899#define    WGMA1        1
1900#define    WGMA0        0
1901
1902/* Timer/Counter Control and Status Register B (generic) */
1903#define    ICNC         7
1904#define    ICES         6
1905#define    WGMB3        4
1906#define    WGMB2        3
1907#define    CSB2         2
1908#define    CSB1         1
1909#define    CSB0         0
1910
1911/* Timer/Counter Control Register C (generic) */
1912#define    FOCA         7
1913#define    FOCB         6
1914#define    FOCC         5
1915
1916/* Port Data Register (generic) */
1917#define    PORT7        7
1918#define    PORT6        6
1919#define    PORT5        5
1920#define    PORT4        4
1921#define    PORT3        3
1922#define    PORT2        2
1923#define    PORT1        1
1924#define    PORT0        0
1925
1926/* Port Data Direction Register (generic) */
1927#define    DD7          7
1928#define    DD6          6
1929#define    DD5          5
1930#define    DD4          4
1931#define    DD3          3
1932#define    DD2          2
1933#define    DD1          1
1934#define    DD0          0
1935
1936/* Port Input Pins (generic) */
1937#define    PIN7         7
1938#define    PIN6         6
1939#define    PIN5         5
1940#define    PIN4         4
1941#define    PIN3         3
1942#define    PIN2         2
1943#define    PIN1         1
1944#define    PIN0         0
1945
1946/* USART Status Register A (generic) */
1947#define    RXC          7
1948#define    TXC          6
1949#define    UDRE         5
1950#define    FE           4
1951#define    DOR          3
1952#define    UPE          2
1953#define    U2X          1
1954#define    MPCM         0
1955
1956/* USART Control Register B (generic) */
1957#define    RXCIE        7
1958#define    TXCIE        6
1959#define    UDRIE        5
1960#define    RXEN         4
1961#define    TXEN         3
1962#define    UCSZ         2
1963#define    UCSZ2        2       /* new name in datasheet (2467E-AVR-05/02) */
1964#define    RXB8         1
1965#define    TXB8         0
1966
1967/* USART Register C (generic) */
1968#define    UMSEL        6
1969#define    UPM1         5
1970#define    UPM0         4
1971#define    USBS         3
1972#define    UCSZ1        2
1973#define    UCSZ0        1
1974#define    UCPOL        0
1975
1976/* End Verbatim */
1977
1978#endif  /* _AVR_IOCANXX_H_ */
Note: See TracBrowser for help on using the repository browser.