diff options
Diffstat (limited to 'include/avr/iom128rfa1.h')
-rw-r--r-- | include/avr/iom128rfa1.h | 5372 |
1 files changed, 5372 insertions, 0 deletions
diff --git a/include/avr/iom128rfa1.h b/include/avr/iom128rfa1.h new file mode 100644 index 0000000000..480ae200f8 --- /dev/null +++ b/include/avr/iom128rfa1.h @@ -0,0 +1,5372 @@ +/* Copyright (c) 2009 Atmel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + + +/* avr/iom128rfa1.h - definitions for ATmega128RFA1 */ + +#ifndef _AVR_IOM128RFA1_H_ +#define _AVR_IOM128RFA1_H_ 1 + +/* This file should only be included from <avr/io.h>, never directly. */ + +#ifndef _AVR_IO_H_ +# error "Include <avr/io.h> instead of this file." +#endif + +#ifndef _AVR_IOXXX_H_ +# define _AVR_IOXXX_H_ "iom128rfa1.h" +#else +# error "Attempt to include more than one <avr/ioXXX.h> file." +#endif + +#include <avr/sfr_defs.h> + +#ifndef __ASSEMBLER__ +# define _MMIO_BYTE_STRUCT(mem_addr,type) (*(volatile type *)(mem_addr)) +# define _SFR_IO8_STRUCT(io_addr,type) _MMIO_BYTE_STRUCT((io_addr) + 0x20, type) +# define _SFR_MEM8_STRUCT(io_addr,type) _MMIO_BYTE_STRUCT((io_addr), type) +#endif /* __ASSEMBLER__ */ + +/* + * USAGE: + * + * simple register assignment: + * TIFR1 = 0x17 + * subregister assignment: + * TIFR1_struct.ocf1a = 1 + * (subregister names are converted to small letters) + */ + + +/* Port A Input Pins Address */ +#define PINA _SFR_IO8(0x00) + + /* PINA */ + +#define PINA0 0 +#define PINA1 1 +#define PINA2 2 +#define PINA3 3 +#define PINA4 4 +#define PINA5 5 +#define PINA6 6 +#define PINA7 7 + +/* Port A Data Direction Register */ +#define DDRA _SFR_IO8(0x01) + + /* DDRA */ + +#define DDA0 0 +#define DDA1 1 +#define DDA2 2 +#define DDA3 3 +#define DDA4 4 +#define DDA5 5 +#define DDA6 6 +#define DDA7 7 + +/* Port A Data Register */ +#define PORTA _SFR_IO8(0x02) + + /* PORTA */ + +#define PORTA0 0 +#define PA0 0 +#define PORTA1 1 +#define PA1 1 +#define PORTA2 2 +#define PA2 2 +#define PORTA3 3 +#define PA3 3 +#define PORTA4 4 +#define PA4 4 +#define PORTA5 5 +#define PA5 5 +#define PORTA6 6 +#define PA6 6 +#define PORTA7 7 +#define PA7 7 + +/* Port B Input Pins Address */ +#define PINB _SFR_IO8(0x03) + + /* PINB */ + +#define PINB0 0 +#define PINB1 1 +#define PINB2 2 +#define PINB3 3 +#define PINB4 4 +#define PINB5 5 +#define PINB6 6 +#define PINB7 7 + +/* Port B Data Direction Register */ +#define DDRB _SFR_IO8(0x04) + + /* DDRB */ + +#define DDB0 0 +#define DDB1 1 +#define DDB2 2 +#define DDB3 3 +#define DDB4 4 +#define DDB5 5 +#define DDB6 6 +#define DDB7 7 + +/* Port B Data Register */ +#define PORTB _SFR_IO8(0x05) + + /* PORTB */ + +#define PORTB0 0 +#define PB0 0 +#define PORTB1 1 +#define PB1 1 +#define PORTB2 2 +#define PB2 2 +#define PORTB3 3 +#define PB3 3 +#define PORTB4 4 +#define PB4 4 +#define PORTB5 5 +#define PB5 5 +#define PORTB6 6 +#define PB6 6 +#define PORTB7 7 +#define PB7 7 + +/* Port C Input Pins Address */ +#define PINC _SFR_IO8(0x06) + + /* PINC */ + +#define PINC0 0 +#define PINC1 1 +#define PINC2 2 +#define PINC3 3 +#define PINC4 4 +#define PINC5 5 +#define PINC6 6 +#define PINC7 7 + +/* Port C Data Direction Register */ +#define DDRC _SFR_IO8(0x07) + + /* DDRC */ + +#define DDC0 0 +#define DDC1 1 +#define DDC2 2 +#define DDC3 3 +#define DDC4 4 +#define DDC5 5 +#define DDC6 6 +#define DDC7 7 + +/* Port C Data Register */ +#define PORTC _SFR_IO8(0x08) + + /* PORTC */ + +#define PORTC0 0 +#define PC0 0 +#define PORTC1 1 +#define PC1 1 +#define PORTC2 2 +#define PC2 2 +#define PORTC3 3 +#define PC3 3 +#define PORTC4 4 +#define PC4 4 +#define PORTC5 5 +#define PC5 5 +#define PORTC6 6 +#define PC6 6 +#define PORTC7 7 +#define PC7 7 + +/* Port D Input Pins Address */ +#define PIND _SFR_IO8(0x09) + + /* PIND */ + +#define PIND0 0 +#define PIND1 1 +#define PIND2 2 +#define PIND3 3 +#define PIND4 4 +#define PIND5 5 +#define PIND6 6 +#define PIND7 7 + +/* Port D Data Direction Register */ +#define DDRD _SFR_IO8(0x0A) + + /* DDRD */ + +#define DDD0 0 +#define DDD1 1 +#define DDD2 2 +#define DDD3 3 +#define DDD4 4 +#define DDD5 5 +#define DDD6 6 +#define DDD7 7 + +/* Port D Data Register */ +#define PORTD _SFR_IO8(0x0B) + + /* PORTD */ + +#define PORTD0 0 +#define PD0 0 +#define PORTD1 1 +#define PD1 1 +#define PORTD2 2 +#define PD2 2 +#define PORTD3 3 +#define PD3 3 +#define PORTD4 4 +#define PD4 4 +#define PORTD5 5 +#define PD5 5 +#define PORTD6 6 +#define PD6 6 +#define PORTD7 7 +#define PD7 7 + +/* Port E Input Pins Address */ +#define PINE _SFR_IO8(0x0C) + + /* PINE */ + +#define PINE0 0 +#define PINE1 1 +#define PINE2 2 +#define PINE3 3 +#define PINE4 4 +#define PINE5 5 +#define PINE6 6 +#define PINE7 7 + +/* Port E Data Direction Register */ +#define DDRE _SFR_IO8(0x0D) + + /* DDRE */ + +#define DDE0 0 +#define DDE1 1 +#define DDE2 2 +#define DDE3 3 +#define DDE4 4 +#define DDE5 5 +#define DDE6 6 +#define DDE7 7 + +/* Port E Data Register */ +#define PORTE _SFR_IO8(0x0E) + + /* PORTE */ + +#define PORTE0 0 +#define PE0 0 +#define PORTE1 1 +#define PE1 1 +#define PORTE2 2 +#define PE2 2 +#define PORTE3 3 +#define PE3 3 +#define PORTE4 4 +#define PE4 4 +#define PORTE5 5 +#define PE5 5 +#define PORTE6 6 +#define PE6 6 +#define PORTE7 7 +#define PE7 7 + +/* Port F Input Pins Address */ +#define PINF _SFR_IO8(0x0F) + + /* PINF */ + +#define PINF0 0 +#define PINF1 1 +#define PINF2 2 +#define PINF3 3 +#define PINF4 4 +#define PINF5 5 +#define PINF6 6 +#define PINF7 7 + +/* Port F Data Direction Register */ +#define DDRF _SFR_IO8(0x10) + + /* DDRF */ + +#define DDF0 0 +#define DDF1 1 +#define DDF2 2 +#define DDF3 3 +#define DDF4 4 +#define DDF5 5 +#define DDF6 6 +#define DDF7 7 + +/* Port F Data Register */ +#define PORTF _SFR_IO8(0x11) + + /* PORTF */ + +#define PORTF0 0 +#define PF0 0 +#define PORTF1 1 +#define PF1 1 +#define PORTF2 2 +#define PF2 2 +#define PORTF3 3 +#define PF3 3 +#define PORTF4 4 +#define PF4 4 +#define PORTF5 5 +#define PF5 5 +#define PORTF6 6 +#define PF6 6 +#define PORTF7 7 +#define PF7 7 + +/* Port G Input Pins Address */ +#define PING _SFR_IO8(0x12) + + /* PING */ + +#define PING0 0 +#define PING1 1 +#define PING2 2 +#define PING3 3 +#define PING4 4 +#define PING5 5 + +/* Port G Data Direction Register */ +#define DDRG _SFR_IO8(0x13) + + /* DDRG */ + +#define DDG0 0 +#define DDG1 1 +#define DDG2 2 +#define DDG3 3 +#define DDG4 4 +#define DDG5 5 + +/* Port G Data Register */ +#define PORTG _SFR_IO8(0x14) + + /* PORTG */ + +#define PORTG0 0 +#define PG0 0 +#define PORTG1 1 +#define PG1 1 +#define PORTG2 2 +#define PG2 2 +#define PORTG3 3 +#define PG3 3 +#define PORTG4 4 +#define PG4 4 +#define PORTG5 5 +#define PG5 5 + +/* Timer/Counter0 Interrupt Flag Register */ +#define TIFR0 _SFR_IO8(0x15) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR0 { + unsigned int tov0 : 1; /* Timer/Counter0 Overflow Flag */ + unsigned int ocf0a : 1; /* Timer/Counter0 Output Compare A Match Flag */ + unsigned int ocf0b : 1; /* Timer/Counter0 Output Compare B Match Flag */ + unsigned int : 5; +}; + +#define TIFR0_struct _SFR_IO8_STRUCT(0x15, struct __reg_TIFR0) + +#endif /* __ASSEMBLER__ */ + + /* TIFR0 */ + +#define TOV0 0 +#define OCF0A 1 +#define OCF0B 2 + +/* Timer/Counter1 Interrupt Flag Register */ +#define TIFR1 _SFR_IO8(0x16) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR1 { + unsigned int tov1 : 1; /* Timer/Counter1 Overflow Flag */ + unsigned int ocf1a : 1; /* Timer/Counter1 Output Compare A Match Flag */ + unsigned int ocf1b : 1; /* Timer/Counter1 Output Compare B Match Flag */ + unsigned int ocf1c : 1; /* Timer/Counter1 Output Compare C Match Flag */ + unsigned int : 1; + unsigned int icf1 : 1; /* Timer/Counter1 Input Capture Flag */ + unsigned int : 2; +}; + +#define TIFR1_struct _SFR_IO8_STRUCT(0x16, struct __reg_TIFR1) + +#endif /* __ASSEMBLER__ */ + + /* TIFR1 */ + +#define TOV1 0 +#define OCF1A 1 +#define OCF1B 2 +#define OCF1C 3 +#define ICF1 5 + +/* Timer/Counter Interrupt Flag Register */ +#define TIFR2 _SFR_IO8(0x17) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR2 { + unsigned int tov2 : 1; /* Timer/Counter2 Overflow Flag */ + unsigned int ocf2a : 1; /* Output Compare Flag 2 A */ + unsigned int ocf2b : 1; /* Output Compare Flag 2 B */ + unsigned int : 5; +}; + +#define TIFR2_struct _SFR_IO8_STRUCT(0x17, struct __reg_TIFR2) + +#endif /* __ASSEMBLER__ */ + + /* TIFR2 */ + +#define TOV2 0 +#define OCF2A 1 +#define OCF2B 2 + +/* Timer/Counter3 Interrupt Flag Register */ +#define TIFR3 _SFR_IO8(0x18) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR3 { + unsigned int tov3 : 1; /* Timer/Counter3 Overflow Flag */ + unsigned int ocf3a : 1; /* Timer/Counter3 Output Compare A Match Flag */ + unsigned int ocf3b : 1; /* Timer/Counter3 Output Compare B Match Flag */ + unsigned int ocf3c : 1; /* Timer/Counter3 Output Compare C Match Flag */ + unsigned int : 1; + unsigned int icf3 : 1; /* Timer/Counter3 Input Capture Flag */ + unsigned int : 2; +}; + +#define TIFR3_struct _SFR_IO8_STRUCT(0x18, struct __reg_TIFR3) + +#endif /* __ASSEMBLER__ */ + + /* TIFR3 */ + +#define TOV3 0 +#define OCF3A 1 +#define OCF3B 2 +#define OCF3C 3 +#define ICF3 5 + +/* Timer/Counter4 Interrupt Flag Register */ +#define TIFR4 _SFR_IO8(0x19) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR4 { + unsigned int tov4 : 1; /* Timer/Counter4 Overflow Flag */ + unsigned int ocf4a : 1; /* Timer/Counter4 Output Compare A Match Flag */ + unsigned int ocf4b : 1; /* Timer/Counter4 Output Compare B Match Flag */ + unsigned int ocf4c : 1; /* Timer/Counter4 Output Compare C Match Flag */ + unsigned int : 1; + unsigned int icf4 : 1; /* Timer/Counter4 Input Capture Flag */ + unsigned int : 2; +}; + +#define TIFR4_struct _SFR_IO8_STRUCT(0x19, struct __reg_TIFR4) + +#endif /* __ASSEMBLER__ */ + + /* TIFR4 */ + +#define TOV4 0 +#define OCF4A 1 +#define OCF4B 2 +#define OCF4C 3 +#define ICF4 5 + +/* Timer/Counter5 Interrupt Flag Register */ +#define TIFR5 _SFR_IO8(0x1A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIFR5 { + unsigned int tov5 : 1; /* Timer/Counter5 Overflow Flag */ + unsigned int ocf5a : 1; /* Timer/Counter5 Output Compare A Match Flag */ + unsigned int ocf5b : 1; /* Timer/Counter5 Output Compare B Match Flag */ + unsigned int ocf5c : 1; /* Timer/Counter5 Output Compare C Match Flag */ + unsigned int : 1; + unsigned int icf5 : 1; /* Timer/Counter5 Input Capture Flag */ + unsigned int : 2; +}; + +#define TIFR5_struct _SFR_IO8_STRUCT(0x1a, struct __reg_TIFR5) + +#endif /* __ASSEMBLER__ */ + + /* TIFR5 */ + +#define TOV5 0 +#define OCF5A 1 +#define OCF5B 2 +#define OCF5C 3 +#define ICF5 5 + +/* Pin Change Interrupt Flag Register */ +#define PCIFR _SFR_IO8(0x1B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PCIFR { + unsigned int pcif : 3; /* Pin Change Interrupt Flag 2 */ + unsigned int : 5; +}; + +#define PCIFR_struct _SFR_IO8_STRUCT(0x1b, struct __reg_PCIFR) + +#endif /* __ASSEMBLER__ */ + + /* PCIFR */ + +#define PCIF0 0 +#define PCIF1 1 +#define PCIF2 2 + +/* External Interrupt Flag Register */ +#define EIFR _SFR_IO8(0x1C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_EIFR { + unsigned int intf : 8; /* External Interrupt Flag */ +}; + +#define EIFR_struct _SFR_IO8_STRUCT(0x1c, struct __reg_EIFR) + +#endif /* __ASSEMBLER__ */ + + /* EIFR */ + +#define INTF0 0 +#define INTF1 1 +#define INTF2 2 +#define INTF3 3 +#define INTF4 4 +#define INTF5 5 +#define INTF6 6 +#define INTF7 7 + +/* External Interrupt Mask Register */ +#define EIMSK _SFR_IO8(0x1D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_EIMSK { + unsigned int intm : 8; /* External Interrupt Request Enable */ +}; + +#define EIMSK_struct _SFR_IO8_STRUCT(0x1d, struct __reg_EIMSK) + +#endif /* __ASSEMBLER__ */ + + /* EIMSK */ + +#define INT0 0 +#define INT1 1 +#define INT2 2 +#define INT3 3 +#define INT4 4 +#define INT5 5 +#define INT6 6 +#define INT7 7 + +/* General Purpose IO Register 0 */ +#define GPIOR0 _SFR_IO8(0x1E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_GPIOR0 { + unsigned int gpior0 : 8; /* General Purpose I/O Register 0 Value */ +}; + +#define GPIOR0_struct _SFR_IO8_STRUCT(0x1e, struct __reg_GPIOR0) + +#endif /* __ASSEMBLER__ */ + + /* GPIOR0 */ + +#define GPIOR00 0 +#define GPIOR01 1 +#define GPIOR02 2 +#define GPIOR03 3 +#define GPIOR04 4 +#define GPIOR05 5 +#define GPIOR06 6 +#define GPIOR07 7 + +/* 6-char sequence denoting where to find the EEPROM registers in memory space. + Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM + subroutines. + First two letters: EECR address. + Second two letters: EEDR address. + Last two letters: EEAR address. */ + +#define __EEPROM_REG_LOCATIONS__ 1F2021 + +/* EEPROM Control Register */ +#define EECR _SFR_IO8(0x1F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_EECR { + unsigned int eere : 1; /* EEPROM Read Enable */ + unsigned int eepe : 1; /* EEPROM Programming Enable */ + unsigned int eempe : 1; /* EEPROM Master Write Enable */ + unsigned int eerie : 1; /* EEPROM Ready Interrupt Enable */ + unsigned int eepm : 2; /* EEPROM Programming Mode */ + unsigned int : 2; +}; + +#define EECR_struct _SFR_IO8_STRUCT(0x1f, struct __reg_EECR) + +#endif /* __ASSEMBLER__ */ + + /* EECR */ + +#define EERE 0 +#define EEPE 1 +#define EEMPE 2 +#define EERIE 3 +#define EEPM0 4 +#define EEPM1 5 + +/* EEPROM Data Register */ +#define EEDR _SFR_IO8(0x20) + + /* EEDR */ + +#define EEDR0 0 +#define EEDR1 1 +#define EEDR2 2 +#define EEDR3 3 +#define EEDR4 4 +#define EEDR5 5 +#define EEDR6 6 +#define EEDR7 7 + +/* EEPROM Address Register Bytes */ +#define EEAR _SFR_IO16(0x21) +#define EEARL _SFR_IO8(0x21) +#define EEARH _SFR_IO8(0x22) + +/* General Timer/Counter Control Register */ +#define GTCCR _SFR_IO8(0x23) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_GTCCR { + unsigned int psrsync : 1; /* Prescaler Reset for Synchronous Timer/Counters */ + unsigned int psrasy : 1; /* Prescaler Reset Timer/Counter2 */ + unsigned int : 5; + unsigned int tsm : 1; /* Timer/Counter Synchronization Mode */ +}; + +#define GTCCR_struct _SFR_IO8_STRUCT(0x23, struct __reg_GTCCR) + +#endif /* __ASSEMBLER__ */ + + /* GTCCR */ + +#define PSRSYNC 0 +#define PSR10 0 +#define PSRASY 1 +#define PSR2 1 +#define TSM 7 + +/* Timer/Counter0 Control Register A */ +#define TCCR0A _SFR_IO8(0x24) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR0A { + unsigned int wgm0 : 2; /* Waveform Generation Mode */ + unsigned int : 2; + unsigned int com0b : 2; /* Compare Match Output B Mode */ + unsigned int com0a : 2; /* Compare Match Output A Mode */ +}; + +#define TCCR0A_struct _SFR_IO8_STRUCT(0x24, struct __reg_TCCR0A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR0A */ + +#define WGM00 0 +#define WGM01 1 +#define COM0B0 4 +#define COM0B1 5 +#define COM0A0 6 +#define COM0A1 7 + +/* Timer/Counter0 Control Register B */ +#define TCCR0B _SFR_IO8(0x25) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR0B { + unsigned int cs0 : 3; /* Clock Select */ + unsigned int wgm02 : 1; /* */ + unsigned int : 2; + unsigned int foc0b : 1; /* Force Output Compare B */ + unsigned int foc0a : 1; /* Force Output Compare A */ +}; + +#define TCCR0B_struct _SFR_IO8_STRUCT(0x25, struct __reg_TCCR0B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR0B */ + +#define CS00 0 +#define CS01 1 +#define CS02 2 +#define WGM02 3 +#define FOC0B 6 +#define FOC0A 7 + +/* Timer/Counter0 Register */ +#define TCNT0 _SFR_IO8(0x26) + + /* TCNT0 */ + +#define TCNT0_0 0 +#define TCNT0_1 1 +#define TCNT0_2 2 +#define TCNT0_3 3 +#define TCNT0_4 4 +#define TCNT0_5 5 +#define TCNT0_6 6 +#define TCNT0_7 7 + +/* Timer/Counter0 Output Compare Register */ +#define OCR0A _SFR_IO8(0x27) + + /* OCR0A */ + +#define OCR0A_0 0 +#define OCR0A_1 1 +#define OCR0A_2 2 +#define OCR0A_3 3 +#define OCR0A_4 4 +#define OCR0A_5 5 +#define OCR0A_6 6 +#define OCR0A_7 7 + +/* Timer/Counter0 Output Compare Register B */ +#define OCR0B _SFR_IO8(0x28) + + /* OCR0B */ + +#define OCR0B_0 0 +#define OCR0B_1 1 +#define OCR0B_2 2 +#define OCR0B_3 3 +#define OCR0B_4 4 +#define OCR0B_5 5 +#define OCR0B_6 6 +#define OCR0B_7 7 + +/* General Purpose IO Register 1 */ +#define GPIOR1 _SFR_IO8(0x2A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_GPIOR1 { + unsigned int gpior1 : 8; /* General Purpose I/O Register 1 Value */ +}; + +#define GPIOR1_struct _SFR_IO8_STRUCT(0x2a, struct __reg_GPIOR1) + +#endif /* __ASSEMBLER__ */ + + /* GPIOR1 */ + +#define GPIOR10 0 +#define GPIOR11 1 +#define GPIOR12 2 +#define GPIOR13 3 +#define GPIOR14 4 +#define GPIOR15 5 +#define GPIOR16 6 +#define GPIOR17 7 + +/* General Purpose I/O Register 2 */ +#define GPIOR2 _SFR_IO8(0x2B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_GPIOR2 { + unsigned int gpior2 : 8; /* General Purpose I/O Register 2 Value */ +}; + +#define GPIOR2_struct _SFR_IO8_STRUCT(0x2b, struct __reg_GPIOR2) + +#endif /* __ASSEMBLER__ */ + + /* GPIOR2 */ + +#define GPIOR20 0 +#define GPIOR21 1 +#define GPIOR22 2 +#define GPIOR23 3 +#define GPIOR24 4 +#define GPIOR25 5 +#define GPIOR26 6 +#define GPIOR27 7 + +/* SPI Control Register */ +#define SPCR _SFR_IO8(0x2C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SPCR { + unsigned int spr : 2; /* SPI Clock Rate Select 1 and 0 */ + unsigned int cpha : 1; /* Clock Phase */ + unsigned int cpol : 1; /* Clock polarity */ + unsigned int mstr : 1; /* Master/Slave Select */ + unsigned int dord : 1; /* Data Order */ + unsigned int spe : 1; /* SPI Enable */ + unsigned int spie : 1; /* SPI Interrupt Enable */ +}; + +#define SPCR_struct _SFR_IO8_STRUCT(0x2c, struct __reg_SPCR) + +#endif /* __ASSEMBLER__ */ + + /* SPCR */ + +#define SPR0 0 +#define SPR1 1 +#define CPHA 2 +#define CPOL 3 +#define MSTR 4 +#define DORD 5 +#define SPE 6 +#define SPIE 7 + +/* SPI Status Register */ +#define SPSR _SFR_IO8(0x2D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SPSR { + unsigned int spi2x : 1; /* Double SPI Speed Bit */ + unsigned int : 5; + unsigned int wcol : 1; /* Write Collision Flag */ + unsigned int spif : 1; /* SPI Interrupt Flag */ +}; + +#define SPSR_struct _SFR_IO8_STRUCT(0x2d, struct __reg_SPSR) + +#endif /* __ASSEMBLER__ */ + + /* SPSR */ + +#define SPI2X 0 +#define WCOL 6 +#define SPIF 7 + +/* SPI Data Register */ +#define SPDR _SFR_IO8(0x2E) + + /* SPDR */ + +#define SPDR0 0 +#define SPDR1 1 +#define SPDR2 2 +#define SPDR3 3 +#define SPDR4 4 +#define SPDR5 5 +#define SPDR6 6 +#define SPDR7 7 + +/* Analog Comparator Control And Status Register */ +#define ACSR _SFR_IO8(0x30) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ACSR { + unsigned int acis : 2; /* Analog Comparator Interrupt Mode Select */ + unsigned int acic : 1; /* Analog Comparator Input Capture Enable */ + unsigned int acie : 1; /* Analog Comparator Interrupt Enable */ + unsigned int aci : 1; /* Analog Comparator Interrupt Flag */ + unsigned int aco : 1; /* Analog Compare Output */ + unsigned int acbg : 1; /* Analog Comparator Bandgap Select */ + unsigned int acd : 1; /* Analog Comparator Disable */ +}; + +#define ACSR_struct _SFR_IO8_STRUCT(0x30, struct __reg_ACSR) + +#endif /* __ASSEMBLER__ */ + + /* ACSR */ + +#define ACIS0 0 +#define ACIS1 1 +#define ACIC 2 +#define ACIE 3 +#define ACI 4 +#define ACO 5 +#define ACBG 6 +#define ACD 7 + +/* On-Chip Debug Register */ +#define OCDR _SFR_IO8(0x31) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_OCDR { + unsigned int ocdr : 8; /* On-Chip Debug Register Data */ +}; + +#define OCDR_struct _SFR_IO8_STRUCT(0x31, struct __reg_OCDR) + +#endif /* __ASSEMBLER__ */ + + /* OCDR */ + +#define OCDR0 0 +#define OCDR1 1 +#define OCDR2 2 +#define OCDR3 3 +#define OCDR4 4 +#define OCDR5 5 +#define OCDR6 6 +#define OCDR7 7 +#define IDRD 7 + +/* Sleep Mode Control Register */ +#define SMCR _SFR_IO8(0x33) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SMCR { + unsigned int se : 1; /* Sleep Enable */ + unsigned int sm : 3; /* Sleep Mode Select bits */ + unsigned int : 4; +}; + +#define SMCR_struct _SFR_IO8_STRUCT(0x33, struct __reg_SMCR) + +#endif /* __ASSEMBLER__ */ + + /* SMCR */ + +#define SE 0 +#define SM0 1 +#define SM1 2 +#define SM2 3 + +/* MCU Status Register */ +#define MCUSR _SFR_IO8(0x34) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_MCUSR { + unsigned int porf : 1; /* Power-on Reset Flag */ + unsigned int extrf : 1; /* External Reset Flag */ + unsigned int borf : 1; /* Brown-out Reset Flag */ + unsigned int wdrf : 1; /* Watchdog Reset Flag */ + unsigned int jtrf : 1; /* JTAG Reset Flag */ + unsigned int : 3; +}; + +#define MCUSR_struct _SFR_IO8_STRUCT(0x34, struct __reg_MCUSR) + +#endif /* __ASSEMBLER__ */ + + /* MCUSR */ + +#define PORF 0 +#define EXTRF 1 +#define BORF 2 +#define WDRF 3 +#define JTRF 4 + +/* MCU Control Register */ +#define MCUCR _SFR_IO8(0x35) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_MCUCR { + unsigned int ivce : 1; /* Interrupt Vector Change Enable */ + unsigned int ivsel : 1; /* Interrupt Vector Select */ + unsigned int : 2; + unsigned int pud : 1; /* Pull-up Disable */ + unsigned int : 2; + unsigned int jtd : 1; /* JTAG Interface Disable */ +}; + +#define MCUCR_struct _SFR_IO8_STRUCT(0x35, struct __reg_MCUCR) + +#endif /* __ASSEMBLER__ */ + + /* MCUCR */ + +#define IVCE 0 +#define IVSEL 1 +#define PUD 4 +#define JTD 7 + +/* Store Program Memory Control Register */ +#define SPMCSR _SFR_IO8(0x37) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SPMCSR { + unsigned int spmen : 1; /* Store Program Memory Enable */ + unsigned int pgers : 1; /* Page Erase */ + unsigned int pgwrt : 1; /* Page Write */ + unsigned int blbset : 1; /* Boot Lock Bit Set */ + unsigned int rwwsre : 1; /* Read While Write Section Read Enable */ + unsigned int sigrd : 1; /* Signature Row Read */ + unsigned int rwwsb : 1; /* Read While Write Section Busy */ + unsigned int spmie : 1; /* SPM Interrupt Enable */ +}; + +#define SPMCSR_struct _SFR_IO8_STRUCT(0x37, struct __reg_SPMCSR) + +#endif /* __ASSEMBLER__ */ + + /* SPMCSR */ + +#define SPMEN 0 +#define PGERS 1 +#define PGWRT 2 +#define BLBSET 3 +#define RWWSRE 4 +#define SIGRD 5 +#define RWWSB 6 +#define SPMIE 7 + +/* Extended Z-pointer Register for ELPM/SPM */ +#define RAMPZ _SFR_IO8(0x3B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_RAMPZ { + unsigned int rampz : 2; /* Extended Z-Pointer Value */ + unsigned int : 6; +}; + +#define RAMPZ_struct _SFR_IO8_STRUCT(0x3b, struct __reg_RAMPZ) + +#endif /* __ASSEMBLER__ */ + + /* RAMPZ */ + +#define RAMPZ0 0 +#define RAMPZ1 1 + +/* Stack Pointer */ +#define SP _SFR_IO16(0x3D) +#define SPL _SFR_IO8(0x3D) +#define SPH _SFR_IO8(0x3E) + +/* Status Register */ +#define SREG _SFR_IO8(0x3F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SREG { + unsigned int c : 1; /* Carry Flag */ + unsigned int z : 1; /* Zero Flag */ + unsigned int n : 1; /* Negative Flag */ + unsigned int v : 1; /* Two's Complement Overflow Flag */ + unsigned int s : 1; /* Sign Bit */ + unsigned int h : 1; /* Half Carry Flag */ + unsigned int t : 1; /* Bit Copy Storage */ + unsigned int i : 1; /* Global Interrupt Enable */ +}; + +#define SREG_struct _SFR_IO8_STRUCT(0x3f, struct __reg_SREG) + +#endif /* __ASSEMBLER__ */ + + /* SREG */ + +#define SREG_C 0 +#define SREG_Z 1 +#define SREG_N 2 +#define SREG_V 3 +#define SREG_S 4 +#define SREG_H 5 +#define SREG_T 6 +#define SREG_I 7 + +/* Watchdog Timer Control Register */ +#define WDTCSR _SFR_MEM8(0x60) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_WDTCSR { + unsigned int wdp : 3; /* Watchdog Timer Prescaler bits */ + unsigned int wde : 1; /* Watch Dog Enable */ + unsigned int wdce : 1; /* Watchdog Change Enable */ + unsigned int : 1; + unsigned int wdie : 1; /* Watchdog Timeout Interrupt Enable */ + unsigned int wdif : 1; /* Watchdog Timeout Interrupt Flag */ +}; + +#define WDTCSR_struct _SFR_MEM8_STRUCT(0x60, struct __reg_WDTCSR) + +#endif /* __ASSEMBLER__ */ + + /* WDTCSR */ + +#define WDP0 0 +#define WDP1 1 +#define WDP2 2 +#define WDE 3 +#define WDCE 4 +#define WDP3 5 +#define WDIE 6 +#define WDIF 7 + +/* Clock Prescale Register */ +#define CLKPR _SFR_MEM8(0x61) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_CLKPR { + unsigned int clkps : 4; /* Clock Prescaler Select Bits */ + unsigned int : 3; + unsigned int clkpce : 1; /* Clock Prescaler Change Enable */ +}; + +#define CLKPR_struct _SFR_MEM8_STRUCT(0x61, struct __reg_CLKPR) + +#endif /* __ASSEMBLER__ */ + + /* CLKPR */ + +#define CLKPS0 0 +#define CLKPS1 1 +#define CLKPS2 2 +#define CLKPS3 3 +#define CLKPCE 7 + +/* Power Reduction Register 2 */ +#define PRR2 _SFR_MEM8(0x63) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PRR2 { + unsigned int prram : 4; /* Power Reduction SRAM 3 */ + unsigned int : 4; +}; + +#define PRR2_struct _SFR_MEM8_STRUCT(0x63, struct __reg_PRR2) + +#endif /* __ASSEMBLER__ */ + + /* PRR2 */ + +#define PRRAM0 0 +#define PRRAM1 1 +#define PRRAM2 2 +#define PRRAM3 3 + +/* Power Reduction Register0 */ +#define PRR0 _SFR_MEM8(0x64) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PRR0 { + unsigned int pradc : 1; /* Power Reduction ADC */ + unsigned int prusart0 : 1; /* Power Reduction USART */ + unsigned int prspi : 1; /* Power Reduction Serial Peripheral Interface */ + unsigned int prtim1 : 1; /* Power Reduction Timer/Counter1 */ + unsigned int prpga : 1; /* Power Reduction PGA */ + unsigned int prtim0 : 1; /* Power Reduction Timer/Counter0 */ + unsigned int prtim2 : 1; /* Power Reduction Timer/Counter2 */ + unsigned int prtwi : 1; /* Power Reduction TWI */ +}; + +#define PRR0_struct _SFR_MEM8_STRUCT(0x64, struct __reg_PRR0) + +#endif /* __ASSEMBLER__ */ + + /* PRR0 */ + +#define PRADC 0 +#define PRUSART0 1 +#define PRSPI 2 +#define PRTIM1 3 +#define PRPGA 4 +#define PRTIM0 5 +#define PRTIM2 6 +#define PRTWI 7 + +/* Power Reduction Register 1 */ +#define PRR1 _SFR_MEM8(0x65) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PRR1 { + unsigned int prusart : 3; /* Reserved */ + unsigned int prtim3 : 1; /* Power Reduction Timer/Counter3 */ + unsigned int prtim4 : 1; /* Power Reduction Timer/Counter4 */ + unsigned int prtim5 : 1; /* Power Reduction Timer/Counter5 */ + unsigned int prtrx24 : 1; /* Power Reduction Transceiver */ + unsigned int : 1; +}; + +#define PRR1_struct _SFR_MEM8_STRUCT(0x65, struct __reg_PRR1) + +#endif /* __ASSEMBLER__ */ + + /* PRR1 */ + +#define PRUSART1 0 +#define PRUSART2 1 +#define PRUSART3 2 +#define PRTIM3 3 +#define PRTIM4 4 +#define PRTIM5 5 +#define PRTRX24 6 + +/* Oscillator Calibration Value */ +#define OSCCAL _SFR_MEM8(0x66) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_OSCCAL { + unsigned int cal : 8; /* Oscillator Calibration Tuning Value */ +}; + +#define OSCCAL_struct _SFR_MEM8_STRUCT(0x66, struct __reg_OSCCAL) + +#endif /* __ASSEMBLER__ */ + + /* OSCCAL */ + +#define CAL0 0 +#define CAL1 1 +#define CAL2 2 +#define CAL3 3 +#define CAL4 4 +#define CAL5 5 +#define CAL6 6 +#define CAL7 7 + +/* Reference Voltage Calibration Register */ +#define BGCR _SFR_MEM8(0x67) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_BGCR { + unsigned int bgcal : 3; /* Coarse Calibration Bits */ + unsigned int bgcal_fine : 4; /* Fine Calibration Bits */ + unsigned int : 1; +}; + +#define BGCR_struct _SFR_MEM8_STRUCT(0x67, struct __reg_BGCR) + +#endif /* __ASSEMBLER__ */ + + /* BGCR */ + +#define BGCAL0 0 +#define BGCAL1 1 +#define BGCAL2 2 +#define BGCAL_FINE0 3 +#define BGCAL_FINE1 4 +#define BGCAL_FINE2 5 +#define BGCAL_FINE3 6 + +/* Pin Change Interrupt Control Register */ +#define PCICR _SFR_MEM8(0x68) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PCICR { + unsigned int pcie : 3; /* Pin Change Interrupt Enable 2 */ + unsigned int : 5; +}; + +#define PCICR_struct _SFR_MEM8_STRUCT(0x68, struct __reg_PCICR) + +#endif /* __ASSEMBLER__ */ + + /* PCICR */ + +#define PCIE0 0 +#define PCIE1 1 +#define PCIE2 2 + +/* External Interrupt Control Register A */ +#define EICRA _SFR_MEM8(0x69) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_EICRA { + unsigned int isc0 : 2; /* External Interrupt 0 Sense Control Bit */ + unsigned int isc1 : 2; /* External Interrupt 1 Sense Control Bit */ + unsigned int isc2 : 2; /* External Interrupt 2 Sense Control Bit */ + unsigned int isc3 : 2; /* External Interrupt 3 Sense Control Bit */ +}; + +#define EICRA_struct _SFR_MEM8_STRUCT(0x69, struct __reg_EICRA) + +#endif /* __ASSEMBLER__ */ + + /* EICRA */ + +#define ISC00 0 +#define ISC01 1 +#define ISC10 2 +#define ISC11 3 +#define ISC20 4 +#define ISC21 5 +#define ISC30 6 +#define ISC31 7 + +/* External Interrupt Control Register B */ +#define EICRB _SFR_MEM8(0x6A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_EICRB { + unsigned int isc4 : 2; /* External Interrupt 4 Sense Control Bit */ + unsigned int isc5 : 2; /* External Interrupt 5 Sense Control Bit */ + unsigned int isc6 : 2; /* External Interrupt 6 Sense Control Bit */ + unsigned int isc7 : 2; /* External Interrupt 7 Sense Control Bit */ +}; + +#define EICRB_struct _SFR_MEM8_STRUCT(0x6a, struct __reg_EICRB) + +#endif /* __ASSEMBLER__ */ + + /* EICRB */ + +#define ISC40 0 +#define ISC41 1 +#define ISC50 2 +#define ISC51 3 +#define ISC60 4 +#define ISC61 5 +#define ISC70 6 +#define ISC71 7 + +/* Pin Change Mask Register 0 */ +#define PCMSK0 _SFR_MEM8(0x6B) + + /* PCMSK0 */ + +#define PCINT0 0 +#define PCINT1 1 +#define PCINT2 2 +#define PCINT3 3 +#define PCINT4 4 +#define PCINT5 5 +#define PCINT6 6 +#define PCINT7 7 + +/* Pin Change Mask Register 1 */ +#define PCMSK1 _SFR_MEM8(0x6C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PCMSK1 { + unsigned int pcint : 2; /* Pin Change Enable Mask */ + unsigned int pcint1 : 6; /* Pin Change Enable Mask */ +}; + +#define PCMSK1_struct _SFR_MEM8_STRUCT(0x6c, struct __reg_PCMSK1) + +#endif /* __ASSEMBLER__ */ + + /* PCMSK1 */ + +#define PCINT8 0 +#define PCINT9 1 +#define PCINT10 2 +#define PCINT11 3 +#define PCINT12 4 +#define PCINT13 5 +#define PCINT14 6 +#define PCINT15 7 + +/* Pin Change Mask Register 2 */ +#define PCMSK2 _SFR_MEM8(0x6D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PCMSK2 { + unsigned int pcint1 : 4; /* Pin Change Enable Mask */ + unsigned int pcint2 : 4; /* Pin Change Enable Mask */ +}; + +#define PCMSK2_struct _SFR_MEM8_STRUCT(0x6d, struct __reg_PCMSK2) + +#endif /* __ASSEMBLER__ */ + + /* PCMSK2 */ + +#define PCINT16 0 +#define PCINT17 1 +#define PCINT18 2 +#define PCINT19 3 +#define PCINT20 4 +#define PCINT21 5 +#define PCINT22 6 +#define PCINT23 7 + +/* Timer/Counter0 Interrupt Mask Register */ +#define TIMSK0 _SFR_MEM8(0x6E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK0 { + unsigned int toie0 : 1; /* Timer/Counter0 Overflow Interrupt Enable */ + unsigned int ocie0a : 1; /* Timer/Counter0 Output Compare Match A Interrupt Enable */ + unsigned int ocie0b : 1; /* Timer/Counter0 Output Compare Match B Interrupt Enable */ + unsigned int : 5; +}; + +#define TIMSK0_struct _SFR_MEM8_STRUCT(0x6e, struct __reg_TIMSK0) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK0 */ + +#define TOIE0 0 +#define OCIE0A 1 +#define OCIE0B 2 + +/* Timer/Counter1 Interrupt Mask Register */ +#define TIMSK1 _SFR_MEM8(0x6F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK1 { + unsigned int toie1 : 1; /* Timer/Counter1 Overflow Interrupt Enable */ + unsigned int ocie1a : 1; /* Timer/Counter1 Output Compare A Match Interrupt Enable */ + unsigned int ocie1b : 1; /* Timer/Counter1 Output Compare B Match Interrupt Enable */ + unsigned int ocie1c : 1; /* Timer/Counter1 Output Compare C Match Interrupt Enable */ + unsigned int : 1; + unsigned int icie1 : 1; /* Timer/Counter1 Input Capture Interrupt Enable */ + unsigned int : 2; +}; + +#define TIMSK1_struct _SFR_MEM8_STRUCT(0x6f, struct __reg_TIMSK1) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK1 */ + +#define TOIE1 0 +#define OCIE1A 1 +#define OCIE1B 2 +#define OCIE1C 3 +#define ICIE1 5 + +/* Timer/Counter Interrupt Mask register */ +#define TIMSK2 _SFR_MEM8(0x70) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK2 { + unsigned int toie2 : 1; /* Timer/Counter2 Overflow Interrupt Enable */ + unsigned int ocie2a : 1; /* Timer/Counter2 Output Compare Match A Interrupt Enable */ + unsigned int ocie2b : 1; /* Timer/Counter2 Output Compare Match B Interrupt Enable */ + unsigned int : 5; +}; + +#define TIMSK2_struct _SFR_MEM8_STRUCT(0x70, struct __reg_TIMSK2) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK2 */ + +#define TOIE2 0 +#define TOIE2A 0 +#define OCIE2A 1 +#define OCIE2B 2 + +/* Timer/Counter3 Interrupt Mask Register */ +#define TIMSK3 _SFR_MEM8(0x71) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK3 { + unsigned int toie3 : 1; /* Timer/Counter3 Overflow Interrupt Enable */ + unsigned int ocie3a : 1; /* Timer/Counter3 Output Compare A Match Interrupt Enable */ + unsigned int ocie3b : 1; /* Timer/Counter3 Output Compare B Match Interrupt Enable */ + unsigned int ocie3c : 1; /* Timer/Counter3 Output Compare C Match Interrupt Enable */ + unsigned int : 1; + unsigned int icie3 : 1; /* Timer/Counter3 Input Capture Interrupt Enable */ + unsigned int : 2; +}; + +#define TIMSK3_struct _SFR_MEM8_STRUCT(0x71, struct __reg_TIMSK3) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK3 */ + +#define TOIE3 0 +#define OCIE3A 1 +#define OCIE3B 2 +#define OCIE3C 3 +#define ICIE3 5 + +/* Timer/Counter4 Interrupt Mask Register */ +#define TIMSK4 _SFR_MEM8(0x72) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK4 { + unsigned int toie4 : 1; /* Timer/Counter4 Overflow Interrupt Enable */ + unsigned int ocie4a : 1; /* Timer/Counter4 Output Compare A Match Interrupt Enable */ + unsigned int ocie4b : 1; /* Timer/Counter4 Output Compare B Match Interrupt Enable */ + unsigned int ocie4c : 1; /* Timer/Counter4 Output Compare C Match Interrupt Enable */ + unsigned int : 1; + unsigned int icie4 : 1; /* Timer/Counter4 Input Capture Interrupt Enable */ + unsigned int : 2; +}; + +#define TIMSK4_struct _SFR_MEM8_STRUCT(0x72, struct __reg_TIMSK4) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK4 */ + +#define TOIE4 0 +#define OCIE4A 1 +#define OCIE4B 2 +#define OCIE4C 3 +#define ICIE4 5 + +/* Timer/Counter5 Interrupt Mask Register */ +#define TIMSK5 _SFR_MEM8(0x73) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TIMSK5 { + unsigned int toie5 : 1; /* Timer/Counter5 Overflow Interrupt Enable */ + unsigned int ocie5a : 1; /* Timer/Counter5 Output Compare A Match Interrupt Enable */ + unsigned int ocie5b : 1; /* Timer/Counter5 Output Compare B Match Interrupt Enable */ + unsigned int ocie5c : 1; /* Timer/Counter5 Output Compare C Match Interrupt Enable */ + unsigned int : 1; + unsigned int icie5 : 1; /* Timer/Counter5 Input Capture Interrupt Enable */ + unsigned int : 2; +}; + +#define TIMSK5_struct _SFR_MEM8_STRUCT(0x73, struct __reg_TIMSK5) + +#endif /* __ASSEMBLER__ */ + + /* TIMSK5 */ + +#define TOIE5 0 +#define OCIE5A 1 +#define OCIE5B 2 +#define OCIE5C 3 +#define ICIE5 5 + +/* Flash Extended-Mode Control-Register */ +#define NEMCR _SFR_MEM8(0x75) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_NEMCR { + unsigned int : 4; + unsigned int aeam : 2; /* Address for Extended Address Mode of Extra Rows */ + unsigned int eneam : 1; /* Enable Extended Address Mode for Extra Rows */ + unsigned int : 1; +}; + +#define NEMCR_struct _SFR_MEM8_STRUCT(0x75, struct __reg_NEMCR) + +#endif /* __ASSEMBLER__ */ + + /* NEMCR */ + +#define AEAM0 4 +#define AEAM1 5 +#define ENEAM 6 + +/* The ADC Control and Status Register C */ +#define ADCSRC _SFR_MEM8(0x77) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ADCSRC { + unsigned int adsut : 5; /* ADC Start-up Time */ + unsigned int res0 : 1; /* Reserved */ + unsigned int adtht : 2; /* ADC Track-and-Hold Time */ +}; + +#define ADCSRC_struct _SFR_MEM8_STRUCT(0x77, struct __reg_ADCSRC) + +#endif /* __ASSEMBLER__ */ + + /* ADCSRC */ + +#define ADSUT0 0 +#define ADSUT1 1 +#define ADSUT2 2 +#define ADSUT3 3 +#define ADSUT4 4 +#define ADTHT0 6 +#define ADTHT1 7 + +/* ADC Data Register Bytes */ +#ifndef __ASSEMBLER__ +#define ADC _SFR_MEM16(0x78) +#define ADCL _SFR_MEM8(0x78) +#define ADCH _SFR_MEM8(0x79) +#endif /* __ASSEMBLER__ */ +#define ADCW _SFR_MEM16(0x78) +#define ADCWL _SFR_MEM8(0x78) +#define ADCWH _SFR_MEM8(0x79) + +/* The ADC Control and Status Register A */ +#define ADCSRA _SFR_MEM8(0x7A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ADCSRA { + unsigned int adps : 3; /* ADC Prescaler Select Bits */ + unsigned int adie : 1; /* ADC Interrupt Enable */ + unsigned int adif : 1; /* ADC Interrupt Flag */ + unsigned int adate : 1; /* ADC Auto Trigger Enable */ + unsigned int adsc : 1; /* ADC Start Conversion */ + unsigned int aden : 1; /* ADC Enable */ +}; + +#define ADCSRA_struct _SFR_MEM8_STRUCT(0x7a, struct __reg_ADCSRA) + +#endif /* __ASSEMBLER__ */ + + /* ADCSRA */ + +#define ADPS0 0 +#define ADPS1 1 +#define ADPS2 2 +#define ADIE 3 +#define ADIF 4 +#define ADATE 5 +#define ADSC 6 +#define ADEN 7 + +/* ADC Control and Status Register B */ +#define ADCSRB _SFR_MEM8(0x7B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ADCSRB { + unsigned int adts : 3; /* ADC Auto Trigger Source */ + unsigned int mux5 : 1; /* Analog Channel and Gain Selection Bits */ + unsigned int acch : 1; /* Analog Channel Change */ + unsigned int refok : 1; /* Reference Voltage OK */ + unsigned int acme : 1; /* Analog Comparator Multiplexer Enable */ + unsigned int avddok : 1; /* AVDD Supply Voltage OK */ +}; + +#define ADCSRB_struct _SFR_MEM8_STRUCT(0x7b, struct __reg_ADCSRB) + +#endif /* __ASSEMBLER__ */ + + /* ADCSRB */ + +#define ADTS0 0 +#define ADTS1 1 +#define ADTS2 2 +#define MUX5 3 +#define ACCH 4 +#define REFOK 5 +#define ACME 6 +#define AVDDOK 7 + +/* The ADC Multiplexer Selection Register */ +#define ADMUX _SFR_MEM8(0x7C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ADMUX { + unsigned int mux : 5; /* Analog Channel and Gain Selection Bits */ + unsigned int adlar : 1; /* ADC Left Adjust Result */ + unsigned int refs : 2; /* Reference Selection Bits */ +}; + +#define ADMUX_struct _SFR_MEM8_STRUCT(0x7c, struct __reg_ADMUX) + +#endif /* __ASSEMBLER__ */ + + /* ADMUX */ + +#define MUX0 0 +#define MUX1 1 +#define MUX2 2 +#define MUX3 3 +#define MUX4 4 +#define ADLAR 5 +#define REFS0 6 +#define REFS1 7 + +/* Digital Input Disable Register 2 */ +#define DIDR2 _SFR_MEM8(0x7D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DIDR2 { + unsigned int adc8d : 1; /* Reserved Bits */ + unsigned int adc9d : 1; /* Reserved Bits */ + unsigned int adc10d : 1; /* Reserved Bits */ + unsigned int adc11d : 1; /* Reserved Bits */ + unsigned int adc12d : 1; /* Reserved Bits */ + unsigned int adc13d : 1; /* Reserved Bits */ + unsigned int adc14d : 1; /* Reserved Bits */ + unsigned int adc15d : 1; /* Reserved Bits */ +}; + +#define DIDR2_struct _SFR_MEM8_STRUCT(0x7d, struct __reg_DIDR2) + +#endif /* __ASSEMBLER__ */ + + /* DIDR2 */ + +#define ADC8D 0 +#define ADC9D 1 +#define ADC10D 2 +#define ADC11D 3 +#define ADC12D 4 +#define ADC13D 5 +#define ADC14D 6 +#define ADC15D 7 + +/* Digital Input Disable Register 0 */ +#define DIDR0 _SFR_MEM8(0x7E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DIDR0 { + unsigned int adc0d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc1d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc2d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc3d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc4d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc5d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc6d : 1; /* Disable ADC7:0 Digital Input */ + unsigned int adc7d : 1; /* Disable ADC7:0 Digital Input */ +}; + +#define DIDR0_struct _SFR_MEM8_STRUCT(0x7e, struct __reg_DIDR0) + +#endif /* __ASSEMBLER__ */ + + /* DIDR0 */ + +#define ADC0D 0 +#define ADC1D 1 +#define ADC2D 2 +#define ADC3D 3 +#define ADC4D 4 +#define ADC5D 5 +#define ADC6D 6 +#define ADC7D 7 + +/* Digital Input Disable Register 1 */ +#define DIDR1 _SFR_MEM8(0x7F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DIDR1 { + unsigned int ain0d : 1; /* AIN0 Digital Input Disable */ + unsigned int ain1d : 1; /* AIN1 Digital Input Disable */ + unsigned int : 6; +}; + +#define DIDR1_struct _SFR_MEM8_STRUCT(0x7f, struct __reg_DIDR1) + +#endif /* __ASSEMBLER__ */ + + /* DIDR1 */ + +#define AIN0D 0 +#define AIN1D 1 + +/* Timer/Counter1 Control Register A */ +#define TCCR1A _SFR_MEM8(0x80) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR1A { + unsigned int wgm1 : 2; /* Waveform Generation Mode */ + unsigned int com1c : 2; /* Compare Output Mode for Channel C */ + unsigned int com1b : 2; /* Compare Output Mode for Channel B */ + unsigned int com1a : 2; /* Compare Output Mode for Channel A */ +}; + +#define TCCR1A_struct _SFR_MEM8_STRUCT(0x80, struct __reg_TCCR1A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR1A */ + +#define WGM10 0 +#define WGM11 1 +#define COM1C0 2 +#define COM1C1 3 +#define COM1B0 4 +#define COM1B1 5 +#define COM1A0 6 +#define COM1A1 7 + +/* Timer/Counter1 Control Register B */ +#define TCCR1B _SFR_MEM8(0x81) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR1B { + unsigned int cs1 : 3; /* Clock Select */ + unsigned int wgm1 : 2; /* Waveform Generation Mode */ + unsigned int : 1; + unsigned int ices1 : 1; /* Input Capture 1 Edge Select */ + unsigned int icnc1 : 1; /* Input Capture 1 Noise Canceller */ +}; + +#define TCCR1B_struct _SFR_MEM8_STRUCT(0x81, struct __reg_TCCR1B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR1B */ + +#define CS10 0 +#define CS11 1 +#define CS12 2 +#define WGM12 3 +#define WGM13 4 +#define ICES1 6 +#define ICNC1 7 + +/* Timer/Counter1 Control Register C */ +#define TCCR1C _SFR_MEM8(0x82) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR1C { + unsigned int : 5; + unsigned int foc1c : 1; /* Force Output Compare for Channel C */ + unsigned int foc1b : 1; /* Force Output Compare for Channel B */ + unsigned int foc1a : 1; /* Force Output Compare for Channel A */ +}; + +#define TCCR1C_struct _SFR_MEM8_STRUCT(0x82, struct __reg_TCCR1C) + +#endif /* __ASSEMBLER__ */ + + /* TCCR1C */ + +#define FOC1C 5 +#define FOC1B 6 +#define FOC1A 7 + +/* Timer/Counter1 Bytes */ +#define TCNT1 _SFR_MEM16(0x84) +#define TCNT1L _SFR_MEM8(0x84) +#define TCNT1H _SFR_MEM8(0x85) + +/* Timer/Counter1 Input Capture Register Bytes */ +#define ICR1 _SFR_MEM16(0x86) +#define ICR1L _SFR_MEM8(0x86) +#define ICR1H _SFR_MEM8(0x87) + +/* Timer/Counter1 Output Compare Register A Bytes */ +#define OCR1A _SFR_MEM16(0x88) +#define OCR1AL _SFR_MEM8(0x88) +#define OCR1AH _SFR_MEM8(0x89) + +/* Timer/Counter1 Output Compare Register B Bytes */ +#define OCR1B _SFR_MEM16(0x8A) +#define OCR1BL _SFR_MEM8(0x8A) +#define OCR1BH _SFR_MEM8(0x8B) + +/* Timer/Counter1 Output Compare Register C Bytes */ +#define OCR1C _SFR_MEM16(0x8C) +#define OCR1CL _SFR_MEM8(0x8C) +#define OCR1CH _SFR_MEM8(0x8D) + +/* Timer/Counter3 Control Register A */ +#define TCCR3A _SFR_MEM8(0x90) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR3A { + unsigned int wgm3 : 2; /* Waveform Generation Mode */ + unsigned int com3c : 2; /* Compare Output Mode for Channel C */ + unsigned int com3b : 2; /* Compare Output Mode for Channel B */ + unsigned int com3a : 2; /* Compare Output Mode for Channel A */ +}; + +#define TCCR3A_struct _SFR_MEM8_STRUCT(0x90, struct __reg_TCCR3A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR3A */ + +#define WGM30 0 +#define WGM31 1 +#define COM3C0 2 +#define COM3C1 3 +#define COM3B0 4 +#define COM3B1 5 +#define COM3A0 6 +#define COM3A1 7 + +/* Timer/Counter3 Control Register B */ +#define TCCR3B _SFR_MEM8(0x91) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR3B { + unsigned int cs3 : 3; /* Clock Select */ + unsigned int wgm3 : 2; /* Waveform Generation Mode */ + unsigned int : 1; + unsigned int ices3 : 1; /* Input Capture 3 Edge Select */ + unsigned int icnc3 : 1; /* Input Capture 3 Noise Canceller */ +}; + +#define TCCR3B_struct _SFR_MEM8_STRUCT(0x91, struct __reg_TCCR3B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR3B */ + +#define CS30 0 +#define CS31 1 +#define CS32 2 +#define WGM32 3 +#define WGM33 4 +#define ICES3 6 +#define ICNC3 7 + +/* Timer/Counter3 Control Register C */ +#define TCCR3C _SFR_MEM8(0x92) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR3C { + unsigned int : 5; + unsigned int foc3c : 1; /* Force Output Compare for Channel C */ + unsigned int foc3b : 1; /* Force Output Compare for Channel B */ + unsigned int foc3a : 1; /* Force Output Compare for Channel A */ +}; + +#define TCCR3C_struct _SFR_MEM8_STRUCT(0x92, struct __reg_TCCR3C) + +#endif /* __ASSEMBLER__ */ + + /* TCCR3C */ + +#define FOC3C 5 +#define FOC3B 6 +#define FOC3A 7 + +/* Timer/Counter3 Bytes */ +#define TCNT3 _SFR_MEM16(0x94) +#define TCNT3L _SFR_MEM8(0x94) +#define TCNT3H _SFR_MEM8(0x95) + +/* Timer/Counter3 Input Capture Register Bytes */ +#define ICR3 _SFR_MEM16(0x96) +#define ICR3L _SFR_MEM8(0x96) +#define ICR3H _SFR_MEM8(0x97) + +/* Timer/Counter3 Output Compare Register A Bytes */ +#define OCR3A _SFR_MEM16(0x98) +#define OCR3AL _SFR_MEM8(0x98) +#define OCR3AH _SFR_MEM8(0x99) + +/* Timer/Counter3 Output Compare Register B Bytes */ +#define OCR3B _SFR_MEM16(0x9A) +#define OCR3BL _SFR_MEM8(0x9A) +#define OCR3BH _SFR_MEM8(0x9B) + +/* Timer/Counter3 Output Compare Register C Bytes */ +#define OCR3C _SFR_MEM16(0x9C) +#define OCR3CL _SFR_MEM8(0x9C) +#define OCR3CH _SFR_MEM8(0x9D) + +/* Timer/Counter4 Control Register A */ +#define TCCR4A _SFR_MEM8(0xA0) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR4A { + unsigned int wgm4 : 2; /* Waveform Generation Mode */ + unsigned int com4c : 2; /* Compare Output Mode for Channel C */ + unsigned int com4b : 2; /* Compare Output Mode for Channel B */ + unsigned int com4a : 2; /* Compare Output Mode for Channel A */ +}; + +#define TCCR4A_struct _SFR_MEM8_STRUCT(0xa0, struct __reg_TCCR4A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR4A */ + +#define WGM40 0 +#define WGM41 1 +#define COM4C0 2 +#define COM4C1 3 +#define COM4B0 4 +#define COM4B1 5 +#define COM4A0 6 +#define COM4A1 7 + +/* Timer/Counter4 Control Register B */ +#define TCCR4B _SFR_MEM8(0xA1) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR4B { + unsigned int cs4 : 3; /* Clock Select */ + unsigned int wgm4 : 2; /* Waveform Generation Mode */ + unsigned int : 1; + unsigned int ices4 : 1; /* Input Capture 4 Edge Select */ + unsigned int icnc4 : 1; /* Input Capture 4 Noise Canceller */ +}; + +#define TCCR4B_struct _SFR_MEM8_STRUCT(0xa1, struct __reg_TCCR4B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR4B */ + +#define CS40 0 +#define CS41 1 +#define CS42 2 +#define WGM42 3 +#define WGM43 4 +#define ICES4 6 +#define ICNC4 7 + +/* Timer/Counter4 Control Register C */ +#define TCCR4C _SFR_MEM8(0xA2) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR4C { + unsigned int : 5; + unsigned int foc4c : 1; /* Force Output Compare for Channel C */ + unsigned int foc4b : 1; /* Force Output Compare for Channel B */ + unsigned int foc4a : 1; /* Force Output Compare for Channel A */ +}; + +#define TCCR4C_struct _SFR_MEM8_STRUCT(0xa2, struct __reg_TCCR4C) + +#endif /* __ASSEMBLER__ */ + + /* TCCR4C */ + +#define FOC4C 5 +#define FOC4B 6 +#define FOC4A 7 + +/* Timer/Counter4 Bytes */ +#define TCNT4 _SFR_MEM16(0xA4) +#define TCNT4L _SFR_MEM8(0xA4) +#define TCNT4H _SFR_MEM8(0xA5) + +/* Timer/Counter4 Input Capture Register Bytes */ +#define ICR4 _SFR_MEM16(0xA6) +#define ICR4L _SFR_MEM8(0xA6) +#define ICR4H _SFR_MEM8(0xA7) + +/* Timer/Counter4 Output Compare Register A Bytes */ +#define OCR4A _SFR_MEM16(0xA8) +#define OCR4AL _SFR_MEM8(0xA8) +#define OCR4AH _SFR_MEM8(0xA9) + +/* Timer/Counter4 Output Compare Register B Bytes */ +#define OCR4B _SFR_MEM16(0xAA) +#define OCR4BL _SFR_MEM8(0xAA) +#define OCR4BH _SFR_MEM8(0xAB) + +/* Timer/Counter4 Output Compare Register C Bytes */ +#define OCR4C _SFR_MEM16(0xAC) +#define OCR4CL _SFR_MEM8(0xAC) +#define OCR4CH _SFR_MEM8(0xAD) + +/* Timer/Counter2 Control Register A */ +#define TCCR2A _SFR_MEM8(0xB0) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR2A { + unsigned int wgm2 : 2; /* Waveform Generation Mode */ + unsigned int : 2; + unsigned int com2b : 2; /* Compare Match Output B Mode */ + unsigned int com2a : 2; /* Compare Match Output A Mode */ +}; + +#define TCCR2A_struct _SFR_MEM8_STRUCT(0xb0, struct __reg_TCCR2A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR2A */ + +#define WGM20 0 +#define WGM21 1 +#define COM2B0 4 +#define COM2B1 5 +#define COM2A0 6 +#define COM2A1 7 + +/* Timer/Counter2 Control Register B */ +#define TCCR2B _SFR_MEM8(0xB1) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR2B { + unsigned int cs2 : 3; /* Clock Select */ + unsigned int wgm22 : 1; /* Waveform Generation Mode */ + unsigned int : 2; + unsigned int foc2b : 1; /* Force Output Compare B */ + unsigned int foc2a : 1; /* Force Output Compare A */ +}; + +#define TCCR2B_struct _SFR_MEM8_STRUCT(0xb1, struct __reg_TCCR2B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR2B */ + +#define CS20 0 +#define CS21 1 +#define CS22 2 +#define WGM22 3 +#define FOC2B 6 +#define FOC2A 7 + +/* Timer/Counter2 */ +#define TCNT2 _SFR_MEM8(0xB2) + + /* TCNT2 */ + +#define TCNT20 0 +#define TCNT21 1 +#define TCNT22 2 +#define TCNT23 3 +#define TCNT24 4 +#define TCNT25 5 +#define TCNT26 6 +#define TCNT27 7 + +/* Timer/Counter2 Output Compare Register A */ +#define OCR2A _SFR_MEM8(0xB3) + + /* OCR2A */ + +#define OCR2A0 0 +#define OCR2A1 1 +#define OCR2A2 2 +#define OCR2A3 3 +#define OCR2A4 4 +#define OCR2A5 5 +#define OCR2A6 6 +#define OCR2A7 7 + +/* Timer/Counter2 Output Compare Register B */ +#define OCR2B _SFR_MEM8(0xB4) + + /* OCR2B */ + +#define OCR2B0 0 +#define OCR2B1 1 +#define OCR2B2 2 +#define OCR2B3 3 +#define OCR2B4 4 +#define OCR2B5 5 +#define OCR2B6 6 +#define OCR2B7 7 + +/* Asynchronous Status Register */ +#define ASSR _SFR_MEM8(0xB6) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ASSR { + unsigned int tcr2bub : 1; /* Timer/Counter2 Control Register B Update Busy */ + unsigned int tcr2aub : 1; /* Timer/Counter2 Control Register A Update Busy */ + unsigned int ocr2bub : 1; /* Timer/Counter2 Output Compare Register B Update Busy */ + unsigned int ocr2aub : 1; /* Timer/Counter2 Output Compare Register A Update Busy */ + unsigned int tcn2ub : 1; /* Timer/Counter2 Update Busy */ + unsigned int as2 : 1; /* Timer/Counter2 Asynchronous Mode */ + unsigned int exclk : 1; /* Enable External Clock Input */ + unsigned int exclkamr : 1; /* Enable External Clock Input for AMR */ +}; + +#define ASSR_struct _SFR_MEM8_STRUCT(0xb6, struct __reg_ASSR) + +#endif /* __ASSEMBLER__ */ + + /* ASSR */ + +#define TCR2BUB 0 +#define TCR2AUB 1 +#define OCR2BUB 2 +#define OCR2AUB 3 +#define TCN2UB 4 +#define AS2 5 +#define EXCLK 6 +#define EXCLKAMR 7 + +/* TWI Bit Rate Register */ +#define TWBR _SFR_MEM8(0xB8) + + /* TWBR */ + +#define TWBR0 0 +#define TWBR1 1 +#define TWBR2 2 +#define TWBR3 3 +#define TWBR4 4 +#define TWBR5 5 +#define TWBR6 6 +#define TWBR7 7 + +/* TWI Status Register */ +#define TWSR _SFR_MEM8(0xB9) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TWSR { + unsigned int twps : 2; /* TWI Prescaler Bits */ + unsigned int : 1; + unsigned int tws : 5; /* TWI Status */ +}; + +#define TWSR_struct _SFR_MEM8_STRUCT(0xb9, struct __reg_TWSR) + +#endif /* __ASSEMBLER__ */ + + /* TWSR */ + +#define TWPS0 0 +#define TWPS1 1 +#define TWS3 3 +#define TWS4 4 +#define TWS5 5 +#define TWS6 6 +#define TWS7 7 + +/* TWI (Slave) Address Register */ +#define TWAR _SFR_MEM8(0xBA) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TWAR { + unsigned int twgce : 1; /* TWI General Call Recognition Enable Bit */ + unsigned int twa : 7; /* TWI (Slave) Address */ +}; + +#define TWAR_struct _SFR_MEM8_STRUCT(0xba, struct __reg_TWAR) + +#endif /* __ASSEMBLER__ */ + + /* TWAR */ + +#define TWGCE 0 +#define TWA0 1 +#define TWA1 2 +#define TWA2 3 +#define TWA3 4 +#define TWA4 5 +#define TWA5 6 +#define TWA6 7 + +/* TWI Data Register */ +#define TWDR _SFR_MEM8(0xBB) + + /* TWDR */ + +#define TWD0 0 +#define TWD1 1 +#define TWD2 2 +#define TWD3 3 +#define TWD4 4 +#define TWD5 5 +#define TWD6 6 +#define TWD7 7 + +/* TWI Control Register */ +#define TWCR _SFR_MEM8(0xBC) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TWCR { + unsigned int twie : 1; /* TWI Interrupt Enable */ + unsigned int : 1; + unsigned int twen : 1; /* TWI Enable Bit */ + unsigned int twwc : 1; /* TWI Write Collision Flag */ + unsigned int twsto : 1; /* TWI STOP Condition Bit */ + unsigned int twsta : 1; /* TWI START Condition Bit */ + unsigned int twea : 1; /* TWI Enable Acknowledge Bit */ + unsigned int twint : 1; /* TWI Interrupt Flag */ +}; + +#define TWCR_struct _SFR_MEM8_STRUCT(0xbc, struct __reg_TWCR) + +#endif /* __ASSEMBLER__ */ + + /* TWCR */ + +#define TWIE 0 +#define TWEN 2 +#define TWWC 3 +#define TWSTO 4 +#define TWSTA 5 +#define TWEA 6 +#define TWINT 7 + +/* TWI (Slave) Address Mask Register */ +#define TWAMR _SFR_MEM8(0xBD) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TWAMR { + unsigned int : 1; + unsigned int twam : 7; /* TWI Address Mask */ +}; + +#define TWAMR_struct _SFR_MEM8_STRUCT(0xbd, struct __reg_TWAMR) + +#endif /* __ASSEMBLER__ */ + + /* TWAMR */ + +#define TWAM0 1 +#define TWAMR0 1 +#define TWAM1 2 +#define TWAMR1 2 +#define TWAM2 3 +#define TWAMR2 3 +#define TWAM3 4 +#define TWAMR3 4 +#define TWAM4 5 +#define TWAMR4 5 +#define TWAM5 6 +#define TWAMR5 6 +#define TWAM6 7 +#define TWAMR6 7 + +/* USART0 Control and Status Register A */ +#define UCSR0A _SFR_MEM8(0xC0) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR0A { + unsigned int mpcm0 : 1; /* Multi-processor Communication Mode */ + unsigned int u2x0 : 1; /* Double the USART Transmission Speed */ + unsigned int upe0 : 1; /* USART Parity Error */ + unsigned int dor0 : 1; /* Data OverRun */ + unsigned int fe0 : 1; /* Frame Error */ + unsigned int udre0 : 1; /* USART Data Register Empty */ + unsigned int txc0 : 1; /* USART Transmit Complete */ + unsigned int rxc0 : 1; /* USART Receive Complete */ +}; + +#define UCSR0A_struct _SFR_MEM8_STRUCT(0xc0, struct __reg_UCSR0A) + +#endif /* __ASSEMBLER__ */ + + /* UCSR0A */ + +#define MPCM0 0 +#define U2X0 1 +#define UPE0 2 +#define DOR0 3 +#define FE0 4 +#define UDRE0 5 +#define TXC0 6 +#define RXC0 7 + +/* USART0 Control and Status Register B */ +#define UCSR0B _SFR_MEM8(0xC1) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR0B { + unsigned int txb80 : 1; /* Transmit Data Bit 8 */ + unsigned int rxb80 : 1; /* Receive Data Bit 8 */ + unsigned int ucsz02 : 1; /* Character Size */ + unsigned int txen0 : 1; /* Transmitter Enable */ + unsigned int rxen0 : 1; /* Receiver Enable */ + unsigned int udrie0 : 1; /* USART Data Register Empty Interrupt Enable */ + unsigned int txcie0 : 1; /* TX Complete Interrupt Enable */ + unsigned int rxcie0 : 1; /* RX Complete Interrupt Enable */ +}; + +#define UCSR0B_struct _SFR_MEM8_STRUCT(0xc1, struct __reg_UCSR0B) + +#endif /* __ASSEMBLER__ */ + + /* UCSR0B */ + +#define TXB80 0 +#define RXB80 1 +#define UCSZ02 2 +#define TXEN0 3 +#define RXEN0 4 +#define UDRIE0 5 +#define TXCIE0 6 +#define RXCIE0 7 + +/* USART0 Control and Status Register C */ +#define UCSR0C _SFR_MEM8(0xC2) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR0C { + unsigned int ucpol0 : 1; /* Clock Polarity */ + unsigned int ucsz0 : 2; /* Character Size */ + unsigned int ucpha0 : 1; /* Clock Phase */ + unsigned int udord0 : 1; /* Data Order */ + unsigned int usbs0 : 1; /* Stop Bit Select */ + unsigned int upm0 : 2; /* Parity Mode */ + unsigned int umsel0 : 2; /* USART Mode Select */ +}; + +#define UCSR0C_struct _SFR_MEM8_STRUCT(0xc2, struct __reg_UCSR0C) + +#endif /* __ASSEMBLER__ */ + + /* UCSR0C */ + +#define UCPOL0 0 +#define UCPHA0 1 +#define UCPHA0 1 +#define UCSZ00 1 +#define UDORD0 2 +#define UDORD0 2 +#define UCSZ01 2 +#define USBS0 3 +#define UPM00 4 +#define UPM01 5 +#define UMSEL00 6 +#define UMSEL0 6 +#define UMSEL01 7 +#define UMSEL1 7 + +/* USART0 Baud Rate Register Bytes */ +#define UBRR0 _SFR_MEM16(0xC4) +#define UBRR0L _SFR_MEM8(0xC4) +#define UBRR0H _SFR_MEM8(0xC5) + +/* USART0 I/O Data Register */ +#define UDR0 _SFR_MEM8(0xC6) + + /* UDR0 */ + +#define UDR00 0 +#define UDR01 1 +#define UDR02 2 +#define UDR03 3 +#define UDR04 4 +#define UDR05 5 +#define UDR06 6 +#define UDR07 7 + +/* USART1 Control and Status Register A */ +#define UCSR1A _SFR_MEM8(0xC8) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR1A { + unsigned int mpcm1 : 1; /* Multi-processor Communication Mode */ + unsigned int u2x1 : 1; /* Double the USART Transmission Speed */ + unsigned int upe1 : 1; /* USART Parity Error */ + unsigned int dor1 : 1; /* Data OverRun */ + unsigned int fe1 : 1; /* Frame Error */ + unsigned int udre1 : 1; /* USART Data Register Empty */ + unsigned int txc1 : 1; /* USART Transmit Complete */ + unsigned int rxc1 : 1; /* USART Receive Complete */ +}; + +#define UCSR1A_struct _SFR_MEM8_STRUCT(0xc8, struct __reg_UCSR1A) + +#endif /* __ASSEMBLER__ */ + + /* UCSR1A */ + +#define MPCM1 0 +#define U2X1 1 +#define UPE1 2 +#define DOR1 3 +#define FE1 4 +#define UDRE1 5 +#define TXC1 6 +#define RXC1 7 + +/* USART1 Control and Status Register B */ +#define UCSR1B _SFR_MEM8(0xC9) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR1B { + unsigned int txb81 : 1; /* Transmit Data Bit 8 */ + unsigned int rxb81 : 1; /* Receive Data Bit 8 */ + unsigned int ucsz12 : 1; /* Character Size */ + unsigned int txen1 : 1; /* Transmitter Enable */ + unsigned int rxen1 : 1; /* Receiver Enable */ + unsigned int udrie1 : 1; /* USART Data Register Empty Interrupt Enable */ + unsigned int txcie1 : 1; /* TX Complete Interrupt Enable */ + unsigned int rxcie1 : 1; /* RX Complete Interrupt Enable */ +}; + +#define UCSR1B_struct _SFR_MEM8_STRUCT(0xc9, struct __reg_UCSR1B) + +#endif /* __ASSEMBLER__ */ + + /* UCSR1B */ + +#define TXB81 0 +#define RXB81 1 +#define UCSZ12 2 +#define TXEN1 3 +#define RXEN1 4 +#define UDRIE1 5 +#define TXCIE1 6 +#define RXCIE1 7 + +/* USART1 Control and Status Register C */ +#define UCSR1C _SFR_MEM8(0xCA) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_UCSR1C { + unsigned int ucpol1 : 1; /* Clock Polarity */ + unsigned int ucsz1 : 2; /* Character Size */ + unsigned int ucpha1 : 1; /* Clock Phase */ + unsigned int udord1 : 1; /* Data Order */ + unsigned int usbs1 : 1; /* Stop Bit Select */ + unsigned int upm1 : 2; /* Parity Mode */ + unsigned int umsel1 : 2; /* USART Mode Select */ +}; + +#define UCSR1C_struct _SFR_MEM8_STRUCT(0xca, struct __reg_UCSR1C) + +#endif /* __ASSEMBLER__ */ + + /* UCSR1C */ + +#define UCPOL1 0 +#define UCPHA1 1 +#define UCPHA1 1 +#define UCSZ10 1 +#define UDORD1 2 +#define UDORD1 2 +#define UCSZ11 2 +#define USBS1 3 +#define UPM10 4 +#define UPM11 5 +#define UMSEL10 6 +#define UMSEL11 7 + +/* USART1 Baud Rate Register Bytes */ +#define UBRR1 _SFR_MEM16(0xCC) +#define UBRR1L _SFR_MEM8(0xCC) +#define UBRR1H _SFR_MEM8(0xCD) + +/* USART1 I/O Data Register */ +#define UDR1 _SFR_MEM8(0xCE) + + /* UDR1 */ + +#define UDR10 0 +#define UDR11 1 +#define UDR12 2 +#define UDR13 3 +#define UDR14 4 +#define UDR15 5 +#define UDR16 6 +#define UDR17 7 + +/* Symbol Counter Control Register 0 */ +#define SCCR0 _SFR_MEM8(0xDC) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCR0 { + unsigned int sccmp : 3; /* Symbol Counter Compare Unit 3 Mode select */ + unsigned int sctse : 1; /* Symbol Counter Automatic Timestamping enable */ + unsigned int sccksel : 1; /* Symbol Counter Clock Source select */ + unsigned int scen : 1; /* Symbol Counter enable */ + unsigned int scmbts : 1; /* Manual Beacon Timestamp */ + unsigned int scres : 1; /* Symbol Counter Synchronization */ +}; + +#define SCCR0_struct _SFR_MEM8_STRUCT(0xdc, struct __reg_SCCR0) + +#endif /* __ASSEMBLER__ */ + + /* SCCR0 */ + +#define SCCMP1 0 +#define SCCMP2 1 +#define SCCMP3 2 +#define SCTSE 3 +#define SCCKSEL 4 +#define SCEN 5 +#define SCMBTS 6 +#define SCRES 7 + +/* Symbol Counter Control Register 1 */ +#define SCCR1 _SFR_MEM8(0xDD) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCR1 { + unsigned int scenbo : 1; /* Backoff Slot Counter enable */ + unsigned int : 7; +}; + +#define SCCR1_struct _SFR_MEM8_STRUCT(0xdd, struct __reg_SCCR1) + +#endif /* __ASSEMBLER__ */ + + /* SCCR1 */ + +#define SCENBO 0 + +/* Symbol Counter Status Register */ +#define SCSR _SFR_MEM8(0xDE) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCSR { + unsigned int scbsy : 1; /* Symbol Counter busy */ + unsigned int : 7; +}; + +#define SCSR_struct _SFR_MEM8_STRUCT(0xde, struct __reg_SCSR) + +#endif /* __ASSEMBLER__ */ + + /* SCSR */ + +#define SCBSY 0 + +/* Symbol Counter Interrupt Mask Register */ +#define SCIRQM _SFR_MEM8(0xDF) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCIRQM { + unsigned int irqmcp : 3; /* Symbol Counter Compare Match 3 IRQ enable */ + unsigned int irqmof : 1; /* Symbol Counter Overflow IRQ enable */ + unsigned int irqmbo : 1; /* Backoff Slot Counter IRQ enable */ + unsigned int : 3; +}; + +#define SCIRQM_struct _SFR_MEM8_STRUCT(0xdf, struct __reg_SCIRQM) + +#endif /* __ASSEMBLER__ */ + + /* SCIRQM */ + +#define IRQMCP1 0 +#define IRQMCP2 1 +#define IRQMCP3 2 +#define IRQMOF 3 +#define IRQMBO 4 + +/* Symbol Counter Interrupt Status Register */ +#define SCIRQS _SFR_MEM8(0xE0) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCIRQS { + unsigned int irqscp : 3; /* Compare Unit 3 Compare Match IRQ */ + unsigned int irqsof : 1; /* Symbol Counter Overflow IRQ */ + unsigned int irqsbo : 1; /* Backoff Slot Counter IRQ */ + unsigned int : 3; +}; + +#define SCIRQS_struct _SFR_MEM8_STRUCT(0xe0, struct __reg_SCIRQS) + +#endif /* __ASSEMBLER__ */ + + /* SCIRQS */ + +#define IRQSCP1 0 +#define IRQSCP2 1 +#define IRQSCP3 2 +#define IRQSOF 3 +#define IRQSBO 4 + +/* Symbol Counter Register LL-Byte */ +#define SCCNTLL _SFR_MEM8(0xE1) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCNTLL { + unsigned int sccntll : 8; /* Symbol Counter Register LL-Byte */ +}; + +#define SCCNTLL_struct _SFR_MEM8_STRUCT(0xe1, struct __reg_SCCNTLL) + +#endif /* __ASSEMBLER__ */ + + /* SCCNTLL */ + +#define SCCNTLL0 0 +#define SCCNTLL1 1 +#define SCCNTLL2 2 +#define SCCNTLL3 3 +#define SCCNTLL4 4 +#define SCCNTLL5 5 +#define SCCNTLL6 6 +#define SCCNTLL7 7 + +/* Symbol Counter Register LH-Byte */ +#define SCCNTLH _SFR_MEM8(0xE2) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCNTLH { + unsigned int sccntlh : 8; /* Symbol Counter Register LH-Byte */ +}; + +#define SCCNTLH_struct _SFR_MEM8_STRUCT(0xe2, struct __reg_SCCNTLH) + +#endif /* __ASSEMBLER__ */ + + /* SCCNTLH */ + +#define SCCNTLH0 0 +#define SCCNTLH1 1 +#define SCCNTLH2 2 +#define SCCNTLH3 3 +#define SCCNTLH4 4 +#define SCCNTLH5 5 +#define SCCNTLH6 6 +#define SCCNTLH7 7 + +/* Symbol Counter Register HL-Byte */ +#define SCCNTHL _SFR_MEM8(0xE3) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCNTHL { + unsigned int sccnthl : 8; /* Symbol Counter Register HL-Byte */ +}; + +#define SCCNTHL_struct _SFR_MEM8_STRUCT(0xe3, struct __reg_SCCNTHL) + +#endif /* __ASSEMBLER__ */ + + /* SCCNTHL */ + +#define SCCNTHL0 0 +#define SCCNTHL1 1 +#define SCCNTHL2 2 +#define SCCNTHL3 3 +#define SCCNTHL4 4 +#define SCCNTHL5 5 +#define SCCNTHL6 6 +#define SCCNTHL7 7 + +/* Symbol Counter Register HH-Byte */ +#define SCCNTHH _SFR_MEM8(0xE4) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCCNTHH { + unsigned int sccnthh : 8; /* Symbol Counter Register HH-Byte */ +}; + +#define SCCNTHH_struct _SFR_MEM8_STRUCT(0xe4, struct __reg_SCCNTHH) + +#endif /* __ASSEMBLER__ */ + + /* SCCNTHH */ + +#define SCCNTHH0 0 +#define SCCNTHH1 1 +#define SCCNTHH2 2 +#define SCCNTHH3 3 +#define SCCNTHH4 4 +#define SCCNTHH5 5 +#define SCCNTHH6 6 +#define SCCNTHH7 7 + +/* Symbol Counter Beacon Timestamp Register LL-Byte */ +#define SCBTSRLL _SFR_MEM8(0xE5) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCBTSRLL { + unsigned int scbtsrll : 8; /* Symbol Counter Beacon Timestamp Register LL-Byte */ +}; + +#define SCBTSRLL_struct _SFR_MEM8_STRUCT(0xe5, struct __reg_SCBTSRLL) + +#endif /* __ASSEMBLER__ */ + + /* SCBTSRLL */ + +#define SCBTSRLL0 0 +#define SCBTSRLL1 1 +#define SCBTSRLL2 2 +#define SCBTSRLL3 3 +#define SCBTSRLL4 4 +#define SCBTSRLL5 5 +#define SCBTSRLL6 6 +#define SCBTSRLL7 7 + +/* Symbol Counter Beacon Timestamp Register LH-Byte */ +#define SCBTSRLH _SFR_MEM8(0xE6) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCBTSRLH { + unsigned int scbtsrlh : 8; /* Symbol Counter Beacon Timestamp Register LH-Byte */ +}; + +#define SCBTSRLH_struct _SFR_MEM8_STRUCT(0xe6, struct __reg_SCBTSRLH) + +#endif /* __ASSEMBLER__ */ + + /* SCBTSRLH */ + +#define SCBTSRLH0 0 +#define SCBTSRLH1 1 +#define SCBTSRLH2 2 +#define SCBTSRLH3 3 +#define SCBTSRLH4 4 +#define SCBTSRLH5 5 +#define SCBTSRLH6 6 +#define SCBTSRLH7 7 + +/* Symbol Counter Beacon Timestamp Register HL-Byte */ +#define SCBTSRHL _SFR_MEM8(0xE7) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCBTSRHL { + unsigned int scbtsrhl : 8; /* Symbol Counter Beacon Timestamp Register HL-Byte */ +}; + +#define SCBTSRHL_struct _SFR_MEM8_STRUCT(0xe7, struct __reg_SCBTSRHL) + +#endif /* __ASSEMBLER__ */ + + /* SCBTSRHL */ + +#define SCBTSRHL0 0 +#define SCBTSRHL1 1 +#define SCBTSRHL2 2 +#define SCBTSRHL3 3 +#define SCBTSRHL4 4 +#define SCBTSRHL5 5 +#define SCBTSRHL6 6 +#define SCBTSRHL7 7 + +/* Symbol Counter Beacon Timestamp Register HH-Byte */ +#define SCBTSRHH _SFR_MEM8(0xE8) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCBTSRHH { + unsigned int scbtsrhh : 8; /* Symbol Counter Beacon Timestamp Register HH-Byte */ +}; + +#define SCBTSRHH_struct _SFR_MEM8_STRUCT(0xe8, struct __reg_SCBTSRHH) + +#endif /* __ASSEMBLER__ */ + + /* SCBTSRHH */ + +#define SCBTSRHH0 0 +#define SCBTSRHH1 1 +#define SCBTSRHH2 2 +#define SCBTSRHH3 3 +#define SCBTSRHH4 4 +#define SCBTSRHH5 5 +#define SCBTSRHH6 6 +#define SCBTSRHH7 7 + +/* Symbol Counter Frame Timestamp Register LL-Byte */ +#define SCTSRLL _SFR_MEM8(0xE9) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCTSRLL { + unsigned int sctsrll : 8; /* Symbol Counter Frame Timestamp Register LL-Byte */ +}; + +#define SCTSRLL_struct _SFR_MEM8_STRUCT(0xe9, struct __reg_SCTSRLL) + +#endif /* __ASSEMBLER__ */ + + /* SCTSRLL */ + +#define SCTSRLL0 0 +#define SCTSRLL1 1 +#define SCTSRLL2 2 +#define SCTSRLL3 3 +#define SCTSRLL4 4 +#define SCTSRLL5 5 +#define SCTSRLL6 6 +#define SCTSRLL7 7 + +/* Symbol Counter Frame Timestamp Register LH-Byte */ +#define SCTSRLH _SFR_MEM8(0xEA) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCTSRLH { + unsigned int sctsrlh : 8; /* Symbol Counter Frame Timestamp Register LH-Byte */ +}; + +#define SCTSRLH_struct _SFR_MEM8_STRUCT(0xea, struct __reg_SCTSRLH) + +#endif /* __ASSEMBLER__ */ + + /* SCTSRLH */ + +#define SCTSRLH0 0 +#define SCTSRLH1 1 +#define SCTSRLH2 2 +#define SCTSRLH3 3 +#define SCTSRLH4 4 +#define SCTSRLH5 5 +#define SCTSRLH6 6 +#define SCTSRLH7 7 + +/* Symbol Counter Frame Timestamp Register HL-Byte */ +#define SCTSRHL _SFR_MEM8(0xEB) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCTSRHL { + unsigned int sctsrhl : 8; /* Symbol Counter Frame Timestamp Register HL-Byte */ +}; + +#define SCTSRHL_struct _SFR_MEM8_STRUCT(0xeb, struct __reg_SCTSRHL) + +#endif /* __ASSEMBLER__ */ + + /* SCTSRHL */ + +#define SCTSRHL0 0 +#define SCTSRHL1 1 +#define SCTSRHL2 2 +#define SCTSRHL3 3 +#define SCTSRHL4 4 +#define SCTSRHL5 5 +#define SCTSRHL6 6 +#define SCTSRHL7 7 + +/* Symbol Counter Frame Timestamp Register HH-Byte */ +#define SCTSRHH _SFR_MEM8(0xEC) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCTSRHH { + unsigned int sctsrhh : 8; /* Symbol Counter Frame Timestamp Register HH-Byte */ +}; + +#define SCTSRHH_struct _SFR_MEM8_STRUCT(0xec, struct __reg_SCTSRHH) + +#endif /* __ASSEMBLER__ */ + + /* SCTSRHH */ + +#define SCTSRHH0 0 +#define SCTSRHH1 1 +#define SCTSRHH2 2 +#define SCTSRHH3 3 +#define SCTSRHH4 4 +#define SCTSRHH5 5 +#define SCTSRHH6 6 +#define SCTSRHH7 7 + +/* Symbol Counter Output Compare Register 3 LL-Byte */ +#define SCOCR3LL _SFR_MEM8(0xED) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR3LL { + unsigned int scocr3ll : 8; /* Symbol Counter Output Compare Register 3 LL-Byte */ +}; + +#define SCOCR3LL_struct _SFR_MEM8_STRUCT(0xed, struct __reg_SCOCR3LL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR3LL */ + +#define SCOCR3LL0 0 +#define SCOCR3LL1 1 +#define SCOCR3LL2 2 +#define SCOCR3LL3 3 +#define SCOCR3LL4 4 +#define SCOCR3LL5 5 +#define SCOCR3LL6 6 +#define SCOCR3LL7 7 + +/* Symbol Counter Output Compare Register 3 LH-Byte */ +#define SCOCR3LH _SFR_MEM8(0xEE) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR3LH { + unsigned int scocr3lh : 8; /* Symbol Counter Output Compare Register 3 LH-Byte */ +}; + +#define SCOCR3LH_struct _SFR_MEM8_STRUCT(0xee, struct __reg_SCOCR3LH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR3LH */ + +#define SCOCR3LH0 0 +#define SCOCR3LH1 1 +#define SCOCR3LH2 2 +#define SCOCR3LH3 3 +#define SCOCR3LH4 4 +#define SCOCR3LH5 5 +#define SCOCR3LH6 6 +#define SCOCR3LH7 7 + +/* Symbol Counter Output Compare Register 3 HL-Byte */ +#define SCOCR3HL _SFR_MEM8(0xEF) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR3HL { + unsigned int scocr3hl : 8; /* Symbol Counter Output Compare Register 3 HL-Byte */ +}; + +#define SCOCR3HL_struct _SFR_MEM8_STRUCT(0xef, struct __reg_SCOCR3HL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR3HL */ + +#define SCOCR3HL0 0 +#define SCOCR3HL1 1 +#define SCOCR3HL2 2 +#define SCOCR3HL3 3 +#define SCOCR3HL4 4 +#define SCOCR3HL5 5 +#define SCOCR3HL6 6 +#define SCOCR3HL7 7 + +/* Symbol Counter Output Compare Register 3 HH-Byte */ +#define SCOCR3HH _SFR_MEM8(0xF0) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR3HH { + unsigned int scocr3hh : 8; /* Symbol Counter Output Compare Register 3 HH-Byte */ +}; + +#define SCOCR3HH_struct _SFR_MEM8_STRUCT(0xf0, struct __reg_SCOCR3HH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR3HH */ + +#define SCOCR3HH0 0 +#define SCOCR3HH1 1 +#define SCOCR3HH2 2 +#define SCOCR3HH3 3 +#define SCOCR3HH4 4 +#define SCOCR3HH5 5 +#define SCOCR3HH6 6 +#define SCOCR3HH7 7 + +/* Symbol Counter Output Compare Register 2 LL-Byte */ +#define SCOCR2LL _SFR_MEM8(0xF1) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR2LL { + unsigned int scocr2ll : 8; /* Symbol Counter Output Compare Register 2 LL-Byte */ +}; + +#define SCOCR2LL_struct _SFR_MEM8_STRUCT(0xf1, struct __reg_SCOCR2LL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR2LL */ + +#define SCOCR2LL0 0 +#define SCOCR2LL1 1 +#define SCOCR2LL2 2 +#define SCOCR2LL3 3 +#define SCOCR2LL4 4 +#define SCOCR2LL5 5 +#define SCOCR2LL6 6 +#define SCOCR2LL7 7 + +/* Symbol Counter Output Compare Register 2 LH-Byte */ +#define SCOCR2LH _SFR_MEM8(0xF2) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR2LH { + unsigned int scocr2lh : 8; /* Symbol Counter Output Compare Register 2 LH-Byte */ +}; + +#define SCOCR2LH_struct _SFR_MEM8_STRUCT(0xf2, struct __reg_SCOCR2LH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR2LH */ + +#define SCOCR2LH0 0 +#define SCOCR2LH1 1 +#define SCOCR2LH2 2 +#define SCOCR2LH3 3 +#define SCOCR2LH4 4 +#define SCOCR2LH5 5 +#define SCOCR2LH6 6 +#define SCOCR2LH7 7 + +/* Symbol Counter Output Compare Register 2 HL-Byte */ +#define SCOCR2HL _SFR_MEM8(0xF3) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR2HL { + unsigned int scocr2hl : 8; /* Symbol Counter Output Compare Register 2 HL-Byte */ +}; + +#define SCOCR2HL_struct _SFR_MEM8_STRUCT(0xf3, struct __reg_SCOCR2HL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR2HL */ + +#define SCOCR2HL0 0 +#define SCOCR2HL1 1 +#define SCOCR2HL2 2 +#define SCOCR2HL3 3 +#define SCOCR2HL4 4 +#define SCOCR2HL5 5 +#define SCOCR2HL6 6 +#define SCOCR2HL7 7 + +/* Symbol Counter Output Compare Register 2 HH-Byte */ +#define SCOCR2HH _SFR_MEM8(0xF4) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR2HH { + unsigned int scocr2hh : 8; /* Symbol Counter Output Compare Register 2 HH-Byte */ +}; + +#define SCOCR2HH_struct _SFR_MEM8_STRUCT(0xf4, struct __reg_SCOCR2HH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR2HH */ + +#define SCOCR2HH0 0 +#define SCOCR2HH1 1 +#define SCOCR2HH2 2 +#define SCOCR2HH3 3 +#define SCOCR2HH4 4 +#define SCOCR2HH5 5 +#define SCOCR2HH6 6 +#define SCOCR2HH7 7 + +/* Symbol Counter Output Compare Register 1 LL-Byte */ +#define SCOCR1LL _SFR_MEM8(0xF5) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR1LL { + unsigned int scocr1ll : 8; /* Symbol Counter Output Compare Register 1 LL-Byte */ +}; + +#define SCOCR1LL_struct _SFR_MEM8_STRUCT(0xf5, struct __reg_SCOCR1LL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR1LL */ + +#define SCOCR1LL0 0 +#define SCOCR1LL1 1 +#define SCOCR1LL2 2 +#define SCOCR1LL3 3 +#define SCOCR1LL4 4 +#define SCOCR1LL5 5 +#define SCOCR1LL6 6 +#define SCOCR1LL7 7 + +/* Symbol Counter Output Compare Register 1 LH-Byte */ +#define SCOCR1LH _SFR_MEM8(0xF6) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR1LH { + unsigned int scocr1lh : 8; /* Symbol Counter Output Compare Register 1 LH-Byte */ +}; + +#define SCOCR1LH_struct _SFR_MEM8_STRUCT(0xf6, struct __reg_SCOCR1LH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR1LH */ + +#define SCOCR1LH0 0 +#define SCOCR1LH1 1 +#define SCOCR1LH2 2 +#define SCOCR1LH3 3 +#define SCOCR1LH4 4 +#define SCOCR1LH5 5 +#define SCOCR1LH6 6 +#define SCOCR1LH7 7 + +/* Symbol Counter Output Compare Register 1 HL-Byte */ +#define SCOCR1HL _SFR_MEM8(0xF7) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR1HL { + unsigned int scocr1hl : 8; /* Symbol Counter Output Compare Register 1 HL-Byte */ +}; + +#define SCOCR1HL_struct _SFR_MEM8_STRUCT(0xf7, struct __reg_SCOCR1HL) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR1HL */ + +#define SCOCR1HL0 0 +#define SCOCR1HL1 1 +#define SCOCR1HL2 2 +#define SCOCR1HL3 3 +#define SCOCR1HL4 4 +#define SCOCR1HL5 5 +#define SCOCR1HL6 6 +#define SCOCR1HL7 7 + +/* Symbol Counter Output Compare Register 1 HH-Byte */ +#define SCOCR1HH _SFR_MEM8(0xF8) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SCOCR1HH { + unsigned int scocr1hh : 8; /* Symbol Counter Output Compare Register 1 HH-Byte */ +}; + +#define SCOCR1HH_struct _SFR_MEM8_STRUCT(0xf8, struct __reg_SCOCR1HH) + +#endif /* __ASSEMBLER__ */ + + /* SCOCR1HH */ + +#define SCOCR1HH0 0 +#define SCOCR1HH1 1 +#define SCOCR1HH2 2 +#define SCOCR1HH3 3 +#define SCOCR1HH4 4 +#define SCOCR1HH5 5 +#define SCOCR1HH6 6 +#define SCOCR1HH7 7 + +/* Timer/Counter5 Control Register A */ +#define TCCR5A _SFR_MEM8(0x120) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR5A { + unsigned int wgm5 : 2; /* Waveform Generation Mode */ + unsigned int com5c : 2; /* Compare Output Mode for Channel C */ + unsigned int com5b : 2; /* Compare Output Mode for Channel B */ + unsigned int com5a : 2; /* Compare Output Mode for Channel A */ +}; + +#define TCCR5A_struct _SFR_MEM8_STRUCT(0x120, struct __reg_TCCR5A) + +#endif /* __ASSEMBLER__ */ + + /* TCCR5A */ + +#define WGM50 0 +#define WGM51 1 +#define COM5C0 2 +#define COM5C1 3 +#define COM5B0 4 +#define COM5B1 5 +#define COM5A0 6 +#define COM5A1 7 + +/* Timer/Counter5 Control Register B */ +#define TCCR5B _SFR_MEM8(0x121) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR5B { + unsigned int cs5 : 3; /* Clock Select */ + unsigned int wgm5 : 2; /* Waveform Generation Mode */ + unsigned int : 1; + unsigned int ices5 : 1; /* Input Capture 5 Edge Select */ + unsigned int icnc5 : 1; /* Input Capture 5 Noise Canceller */ +}; + +#define TCCR5B_struct _SFR_MEM8_STRUCT(0x121, struct __reg_TCCR5B) + +#endif /* __ASSEMBLER__ */ + + /* TCCR5B */ + +#define CS50 0 +#define CS51 1 +#define CS52 2 +#define WGM52 3 +#define WGM53 4 +#define ICES5 6 +#define ICNC5 7 + +/* Timer/Counter5 Control Register C */ +#define TCCR5C _SFR_MEM8(0x122) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TCCR5C { + unsigned int : 5; + unsigned int foc5c : 1; /* Force Output Compare for Channel C */ + unsigned int foc5b : 1; /* Force Output Compare for Channel B */ + unsigned int foc5a : 1; /* Force Output Compare for Channel A */ +}; + +#define TCCR5C_struct _SFR_MEM8_STRUCT(0x122, struct __reg_TCCR5C) + +#endif /* __ASSEMBLER__ */ + + /* TCCR5C */ + +#define FOC5C 5 +#define FOC5B 6 +#define FOC5A 7 + +/* Timer/Counter5 Bytes */ +#define TCNT5 _SFR_MEM16(0x124) +#define TCNT5L _SFR_MEM8(0x124) +#define TCNT5H _SFR_MEM8(0x125) + +/* Timer/Counter5 Input Capture Register Bytes */ +#define ICR5 _SFR_MEM16(0x126) +#define ICR5L _SFR_MEM8(0x126) +#define ICR5H _SFR_MEM8(0x127) + +/* Timer/Counter5 Output Compare Register A Bytes */ +#define OCR5A _SFR_MEM16(0x128) +#define OCR5AL _SFR_MEM8(0x128) +#define OCR5AH _SFR_MEM8(0x129) + +/* Timer/Counter5 Output Compare Register B Bytes */ +#define OCR5B _SFR_MEM16(0x12A) +#define OCR5BL _SFR_MEM8(0x12A) +#define OCR5BH _SFR_MEM8(0x12B) + +/* Timer/Counter5 Output Compare Register C Bytes */ +#define OCR5C _SFR_MEM16(0x12C) +#define OCR5CL _SFR_MEM8(0x12C) +#define OCR5CH _SFR_MEM8(0x12D) + +/* Low Leakage Voltage Regulator Control Register */ +#define LLCR _SFR_MEM8(0x12F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_LLCR { + unsigned int llencal : 1; /* Enable Automatic Calibration */ + unsigned int llshort : 1; /* Short Lower Calibration Circuit */ + unsigned int lltco : 1; /* Temperature Coefficient of Current Source */ + unsigned int llcal : 1; /* Calibration Active */ + unsigned int llcomp : 1; /* Comparator Output */ + unsigned int lldone : 1; /* Calibration Done */ + unsigned int : 2; +}; + +#define LLCR_struct _SFR_MEM8_STRUCT(0x12f, struct __reg_LLCR) + +#endif /* __ASSEMBLER__ */ + + /* LLCR */ + +#define LLENCAL 0 +#define LLSHORT 1 +#define LLTCO 2 +#define LLCAL 3 +#define LLCOMP 4 +#define LLDONE 5 + +/* Low Leakage Voltage Regulator Data Register (Low-Byte) */ +#define LLDRL _SFR_MEM8(0x130) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_LLDRL { + unsigned int lldrl : 4; /* Low-Byte Data Register Bits */ + unsigned int : 4; +}; + +#define LLDRL_struct _SFR_MEM8_STRUCT(0x130, struct __reg_LLDRL) + +#endif /* __ASSEMBLER__ */ + + /* LLDRL */ + +#define LLDRL0 0 +#define LLDRL1 1 +#define LLDRL2 2 +#define LLDRL3 3 + +/* Low Leakage Voltage Regulator Data Register (High-Byte) */ +#define LLDRH _SFR_MEM8(0x131) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_LLDRH { + unsigned int lldrh : 5; /* High-Byte Data Register Bits */ + unsigned int : 3; +}; + +#define LLDRH_struct _SFR_MEM8_STRUCT(0x131, struct __reg_LLDRH) + +#endif /* __ASSEMBLER__ */ + + /* LLDRH */ + +#define LLDRH0 0 +#define LLDRH1 1 +#define LLDRH2 2 +#define LLDRH3 3 +#define LLDRH4 4 + +/* Data Retention Configuration Register of SRAM 3 */ +#define DRTRAM3 _SFR_MEM8(0x132) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DRTRAM3 { + unsigned int : 4; + unsigned int endrt : 1; /* Enable SRAM Data Retention */ + unsigned int drtswok : 1; /* DRT Switch OK */ + unsigned int : 2; +}; + +#define DRTRAM3_struct _SFR_MEM8_STRUCT(0x132, struct __reg_DRTRAM3) + +#endif /* __ASSEMBLER__ */ + + /* DRTRAM3 */ + +#define ENDRT 4 +#define DRTSWOK 5 + +/* Data Retention Configuration Register of SRAM 2 */ +#define DRTRAM2 _SFR_MEM8(0x133) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DRTRAM2 { + unsigned int : 4; + unsigned int endrt : 1; /* Enable SRAM Data Retention */ + unsigned int drtswok : 1; /* DRT Switch OK */ + unsigned int : 2; +}; + +#define DRTRAM2_struct _SFR_MEM8_STRUCT(0x133, struct __reg_DRTRAM2) + +#endif /* __ASSEMBLER__ */ + + /* DRTRAM2 */ + +#define ENDRT 4 +#define DRTSWOK 5 + +/* Data Retention Configuration Register of SRAM 1 */ +#define DRTRAM1 _SFR_MEM8(0x134) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DRTRAM1 { + unsigned int : 4; + unsigned int endrt : 1; /* Enable SRAM Data Retention */ + unsigned int drtswok : 1; /* DRT Switch OK */ + unsigned int : 2; +}; + +#define DRTRAM1_struct _SFR_MEM8_STRUCT(0x134, struct __reg_DRTRAM1) + +#endif /* __ASSEMBLER__ */ + + /* DRTRAM1 */ + +#define ENDRT 4 +#define DRTSWOK 5 + +/* Data Retention Configuration Register of SRAM 0 */ +#define DRTRAM0 _SFR_MEM8(0x135) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DRTRAM0 { + unsigned int : 4; + unsigned int endrt : 1; /* Enable SRAM Data Retention */ + unsigned int drtswok : 1; /* DRT Switch OK */ + unsigned int : 2; +}; + +#define DRTRAM0_struct _SFR_MEM8_STRUCT(0x135, struct __reg_DRTRAM0) + +#endif /* __ASSEMBLER__ */ + + /* DRTRAM0 */ + +#define ENDRT 4 +#define DRTSWOK 5 + +/* Port Driver Strength Register 0 */ +#define DPDS0 _SFR_MEM8(0x136) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DPDS0 { + unsigned int pbdrv : 2; /* Driver Strength Port B */ + unsigned int pddrv : 2; /* Driver Strength Port D */ + unsigned int pedrv : 2; /* Driver Strength Port E */ + unsigned int pfdrv : 2; /* Driver Strength Port F */ +}; + +#define DPDS0_struct _SFR_MEM8_STRUCT(0x136, struct __reg_DPDS0) + +#endif /* __ASSEMBLER__ */ + + /* DPDS0 */ + +#define PBDRV0 0 +#define PBDRV1 1 +#define PDDRV0 2 +#define PDDRV1 3 +#define PEDRV0 4 +#define PEDRV1 5 +#define PFDRV0 6 +#define PFDRV1 7 + +/* Port Driver Strength Register 1 */ +#define DPDS1 _SFR_MEM8(0x137) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_DPDS1 { + unsigned int pgdrv : 2; /* Driver Strength Port G */ + unsigned int : 6; +}; + +#define DPDS1_struct _SFR_MEM8_STRUCT(0x137, struct __reg_DPDS1) + +#endif /* __ASSEMBLER__ */ + + /* DPDS1 */ + +#define PGDRV0 0 +#define PGDRV1 1 + +/* Transceiver Pin Register */ +#define TRXPR _SFR_MEM8(0x139) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TRXPR { + unsigned int trxrst : 1; /* Force Transceiver Reset */ + unsigned int slptr : 1; /* Multi-purpose Transceiver Control Bit */ + unsigned int : 6; +}; + +#define TRXPR_struct _SFR_MEM8_STRUCT(0x139, struct __reg_TRXPR) + +#endif /* __ASSEMBLER__ */ + + /* TRXPR */ + +#define TRXRST 0 +#define SLPTR 1 + +/* AES Control Register */ +#define AES_CTRL _SFR_MEM8(0x13C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_AES_CTRL { + unsigned int : 2; + unsigned int aes_im : 1; /* AES Interrupt Enable */ + unsigned int aes_dir : 1; /* Set AES Operation Direction */ + unsigned int : 1; + unsigned int aes_mode : 1; /* Set AES Operation Mode */ + unsigned int : 1; + unsigned int aes_request : 1; /* Request AES Operation. */ +}; + +#define AES_CTRL_struct _SFR_MEM8_STRUCT(0x13c, struct __reg_AES_CTRL) + +/* symbolic names */ + +#define AES_DIR_ENC 0 +#define AES_DIR_DEC 1 +#define AES_MODE_ECB 0 +#define AES_MODE_CBC 1 + +#endif /* __ASSEMBLER__ */ + + /* AES_CTRL */ + +#define AES_IM 2 +#define AES_DIR 3 +#define AES_MODE 5 +#define AES_REQUEST 7 + +/* AES Status Register */ +#define AES_STATUS _SFR_MEM8(0x13D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_AES_STATUS { + unsigned int aes_done : 1; /* AES Operation Finished with Success */ + unsigned int : 6; + unsigned int aes_er : 1; /* AES Operation Finished with Error */ +}; + +#define AES_STATUS_struct _SFR_MEM8_STRUCT(0x13d, struct __reg_AES_STATUS) + +#endif /* __ASSEMBLER__ */ + + /* AES_STATUS */ + +#define AES_DONE 0 +#define AES_ER 7 + +/* AES Plain and Cipher Text Buffer Register */ +#define AES_STATE _SFR_MEM8(0x13E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_AES_STATE { + unsigned int aes_state : 8; /* AES Plain and Cipher Text Buffer */ +}; + +#define AES_STATE_struct _SFR_MEM8_STRUCT(0x13e, struct __reg_AES_STATE) + +#endif /* __ASSEMBLER__ */ + + /* AES_STATE */ + +#define AES_STATE0 0 +#define AES_STATE1 1 +#define AES_STATE2 2 +#define AES_STATE3 3 +#define AES_STATE4 4 +#define AES_STATE5 5 +#define AES_STATE6 6 +#define AES_STATE7 7 + +/* AES Encryption and Decryption Key Buffer Register */ +#define AES_KEY _SFR_MEM8(0x13F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_AES_KEY { + unsigned int aes_key : 8; /* AES Encryption/Decryption Key Buffer */ +}; + +#define AES_KEY_struct _SFR_MEM8_STRUCT(0x13f, struct __reg_AES_KEY) + +#endif /* __ASSEMBLER__ */ + + /* AES_KEY */ + +#define AES_KEY0 0 +#define AES_KEY1 1 +#define AES_KEY2 2 +#define AES_KEY3 3 +#define AES_KEY4 4 +#define AES_KEY5 5 +#define AES_KEY6 6 +#define AES_KEY7 7 + +/* Transceiver Status Register */ +#define TRX_STATUS _SFR_MEM8(0x141) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TRX_STATUS { + unsigned int trx_status : 5; /* Transceiver Main Status */ + unsigned int tst_status : 1; /* Test mode status */ + unsigned int cca_status : 1; /* CCA Status Result */ + unsigned int cca_done : 1; /* CCA Algorithm Status */ +}; + +#define TRX_STATUS_struct _SFR_MEM8_STRUCT(0x141, struct __reg_TRX_STATUS) + +/* symbolic names */ + +#define P_ON 0 +#define BUSY_RX 1 +#define BUSY_TX 2 +#define RX_ON 6 +#define TRX_OFF 8 +#define PLL_ON 9 +#define SLEEP 15 +#define BUSY_RX_AACK 17 +#define BUSY_TX_ARET 18 +#define RX_AACK_ON 22 +#define TX_ARET_ON 25 +#define STATE_TRANSITION_IN_PROGRESS 31 +#define TST_DISABLED 0 +#define TST_ENABLED 1 +#define CCA_BUSY 0 +#define CCA_IDLE 1 +#define CCA_NOT_FIN 0 +#define CCA_FIN 1 + +#endif /* __ASSEMBLER__ */ + + /* TRX_STATUS */ + +#define TRX_STATUS0 0 +#define TRX_STATUS1 1 +#define TRX_STATUS2 2 +#define TRX_STATUS3 3 +#define TRX_STATUS4 4 +#define TST_STATUS 5 +#define CCA_STATUS 6 +#define CCA_DONE 7 + +/* Transceiver State Control Register */ +#define TRX_STATE _SFR_MEM8(0x142) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TRX_STATE { + unsigned int trx_cmd : 5; /* State Control Command */ + unsigned int trac_status : 3; /* Transaction Status */ +}; + +#define TRX_STATE_struct _SFR_MEM8_STRUCT(0x142, struct __reg_TRX_STATE) + +/* symbolic names */ + +#define CMD_NOP 0 +#define CMD_TX_START 2 +#define CMD_FORCE_TRX_OFF 3 +#define CMD_FORCE_PLL_ON 4 +#define CMD_RX_ON 6 +#define CMD_TRX_OFF 8 +#define CMD_PLL_ON 9 +#define CMD_RX_AACK_ON 22 +#define CMD_TX_ARET_ON 25 +#define TRAC_SUCCESS 0 +#define TRAC_SUCCESS_DATA_PENDING 1 +#define TRAC_SUCCESS_WAIT_FOR_ACK 2 +#define TRAC_CHANNEL_ACCESS_FAILURE 3 +#define TRAC_NO_ACK 5 +#define TRAC_INVALID 7 + +#endif /* __ASSEMBLER__ */ + + /* TRX_STATE */ + +#define TRX_CMD0 0 +#define TRX_CMD1 1 +#define TRX_CMD2 2 +#define TRX_CMD3 3 +#define TRX_CMD4 4 +#define TRAC_STATUS0 5 +#define TRAC_STATUS1 6 +#define TRAC_STATUS2 7 + +/* Reserved */ +#define TRX_CTRL_0 _SFR_MEM8(0x143) + +/* Transceiver Control Register 1 */ +#define TRX_CTRL_1 _SFR_MEM8(0x144) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TRX_CTRL_1 { + unsigned int : 5; + unsigned int tx_auto_crc_on : 1; /* Enable Automatic CRC Calculation */ + unsigned int irq_2_ext_en : 1; /* Connect Frame Start IRQ to TC1 */ + unsigned int pa_ext_en : 1; /* External PA support enable */ +}; + +#define TRX_CTRL_1_struct _SFR_MEM8_STRUCT(0x144, struct __reg_TRX_CTRL_1) + +#endif /* __ASSEMBLER__ */ + + /* TRX_CTRL_1 */ + +#define TX_AUTO_CRC_ON 5 +#define IRQ_2_EXT_EN 6 +#define PA_EXT_EN 7 + +/* Transceiver Transmit Power Control Register */ +#define PHY_TX_PWR _SFR_MEM8(0x145) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PHY_TX_PWR { + unsigned int tx_pwr : 4; /* Transmit Power Setting */ + unsigned int pa_lt : 2; /* Power Amplifier Lead Time */ + unsigned int pa_buf_lt : 2; /* Power Amplifier Buffer Lead Time */ +}; + +#define PHY_TX_PWR_struct _SFR_MEM8_STRUCT(0x145, struct __reg_PHY_TX_PWR) + +/* symbolic names */ + +#define PA_LT_2US 0 +#define PA_LT_4US 1 +#define PA_LT_6US 2 +#define PA_LT_8US 3 +#define PA_BUF_LT_0US 0 +#define PA_BUF_LT_2US 1 +#define PA_BUF_LT_4US 2 +#define PA_BUF_LT_6US 3 + +#endif /* __ASSEMBLER__ */ + + /* PHY_TX_PWR */ + +#define TX_PWR0 0 +#define TX_PWR1 1 +#define TX_PWR2 2 +#define TX_PWR3 3 +#define PA_LT0 4 +#define PA_LT1 5 +#define PA_BUF_LT0 6 +#define PA_BUF_LT1 7 + +/* Receiver Signal Strength Indicator Register */ +#define PHY_RSSI _SFR_MEM8(0x146) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PHY_RSSI { + unsigned int rssi : 5; /* Receiver Signal Strength Indicator */ + unsigned int rnd_value : 2; /* Random Value */ + unsigned int rx_crc_valid : 1; /* Received Frame CRC Status */ +}; + +#define PHY_RSSI_struct _SFR_MEM8_STRUCT(0x146, struct __reg_PHY_RSSI) + +/* symbolic names */ + +#define RSSI_MIN 0 +#define RSSI_MIN_PLUS_3dB 1 +#define RSSI_MAX 28 +#define CRC_INVALID 0 +#define CRC_VALID 1 + +#endif /* __ASSEMBLER__ */ + + /* PHY_RSSI */ + +#define RSSI0 0 +#define RSSI1 1 +#define RSSI2 2 +#define RSSI3 3 +#define RSSI4 4 +#define RND_VALUE0 5 +#define RND_VALUE1 6 +#define RX_CRC_VALID 7 + +/* Transceiver Energy Detection Level Register */ +#define PHY_ED_LEVEL _SFR_MEM8(0x147) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PHY_ED_LEVEL { + unsigned int ed_level : 8; /* Energy Detection Level */ +}; + +#define PHY_ED_LEVEL_struct _SFR_MEM8_STRUCT(0x147, struct __reg_PHY_ED_LEVEL) + +/* symbolic names */ + +#define ED_MIN 0 +#define ED_MIN_PLUS_1dB 1 +#define ED_MAX 84 +#define ED_RESET 255 + +#endif /* __ASSEMBLER__ */ + + /* PHY_ED_LEVEL */ + +#define ED_LEVEL0 0 +#define ED_LEVEL1 1 +#define ED_LEVEL2 2 +#define ED_LEVEL3 3 +#define ED_LEVEL4 4 +#define ED_LEVEL5 5 +#define ED_LEVEL6 6 +#define ED_LEVEL7 7 + +/* Transceiver Clear Channel Assessment (CCA) Control Register */ +#define PHY_CC_CCA _SFR_MEM8(0x148) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PHY_CC_CCA { + unsigned int channel : 5; /* RX/TX Channel Selection */ + unsigned int cca_mode : 2; /* Select CCA Measurement Mode */ + unsigned int cca_request : 1; /* Manual CCA Measurement Request */ +}; + +#define PHY_CC_CCA_struct _SFR_MEM8_STRUCT(0x148, struct __reg_PHY_CC_CCA) + +/* symbolic names */ + +#define F_2405MHZ 11 +#define F_2410MHZ 12 +#define F_2415MHZ 13 +#define F_2420MHZ 14 +#define F_2425MHZ 15 +#define F_2430MHZ 16 +#define F_2435MHZ 17 +#define F_2440MHZ 18 +#define F_2445MHZ 19 +#define F_2450MHZ 20 +#define F_2455MHZ 21 +#define F_2460MHZ 22 +#define F_2465MHZ 23 +#define F_2470MHZ 24 +#define F_2475MHZ 25 +#define F_2480MHZ 26 +#define CCA_CS_OR_ED 0 +#define CCA_ED 1 +#define CCA_CS 2 +#define CCA_CS_AND_ED 3 + +#endif /* __ASSEMBLER__ */ + + /* PHY_CC_CCA */ + +#define CHANNEL0 0 +#define CHANNEL1 1 +#define CHANNEL2 2 +#define CHANNEL3 3 +#define CHANNEL4 4 +#define CCA_MODE0 5 +#define CCA_MODE1 6 +#define CCA_REQUEST 7 + +/* Transceiver CCA Threshold Setting Register */ +#define CCA_THRES _SFR_MEM8(0x149) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_CCA_THRES { + unsigned int cca_ed_thres : 4; /* ED Threshold Level for CCA Measurement */ + unsigned int cca_cs_thres : 4; /* CS Threshold Level for CCA Measurement */ +}; + +#define CCA_THRES_struct _SFR_MEM8_STRUCT(0x149, struct __reg_CCA_THRES) + +#endif /* __ASSEMBLER__ */ + + /* CCA_THRES */ + +#define CCA_ED_THRES0 0 +#define CCA_ED_THRES1 1 +#define CCA_ED_THRES2 2 +#define CCA_ED_THRES3 3 +#define CCA_CS_THRES0 4 +#define CCA_CS_THRES1 5 +#define CCA_CS_THRES2 6 +#define CCA_CS_THRES3 7 + +/* Transceiver Receive Control Register */ +#define RX_CTRL _SFR_MEM8(0x14A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_RX_CTRL { + unsigned int pdt_thres : 4; /* Receiver Sensitivity Control */ + unsigned int : 4; +}; + +#define RX_CTRL_struct _SFR_MEM8_STRUCT(0x14a, struct __reg_RX_CTRL) + +/* symbolic names */ + +#define PDT_THRES_ANT_DIV_OFF 7 +#define PDT_THRES_ANT_DIV_ON 3 + +#endif /* __ASSEMBLER__ */ + + /* RX_CTRL */ + +#define PDT_THRES0 0 +#define PDT_THRES1 1 +#define PDT_THRES2 2 +#define PDT_THRES3 3 + +/* Start of Frame Delimiter Value Register */ +#define SFD_VALUE _SFR_MEM8(0x14B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SFD_VALUE { + unsigned int sfd_value : 8; /* Start of Frame Delimiter Value */ +}; + +#define SFD_VALUE_struct _SFR_MEM8_STRUCT(0x14b, struct __reg_SFD_VALUE) + +/* symbolic names */ + +#define IEEE_SFD 167 + +#endif /* __ASSEMBLER__ */ + + /* SFD_VALUE */ + +#define SFD_VALUE0 0 +#define SFD_VALUE1 1 +#define SFD_VALUE2 2 +#define SFD_VALUE3 3 +#define SFD_VALUE4 4 +#define SFD_VALUE5 5 +#define SFD_VALUE6 6 +#define SFD_VALUE7 7 + +/* Transceiver Control Register 2 */ +#define TRX_CTRL_2 _SFR_MEM8(0x14C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TRX_CTRL_2 { + unsigned int oqpsk_data_rate : 2; /* Data Rate Selection */ + unsigned int : 5; + unsigned int rx_safe_mode : 1; /* RX Safe Mode */ +}; + +#define TRX_CTRL_2_struct _SFR_MEM8_STRUCT(0x14c, struct __reg_TRX_CTRL_2) + +/* symbolic names */ + +#define RATE_250KB 0 +#define RATE_500KB 1 +#define RATE_1000KB 2 +#define RATE_2000KB 3 + +#endif /* __ASSEMBLER__ */ + + /* TRX_CTRL_2 */ + +#define OQPSK_DATA_RATE0 0 +#define OQPSK_DATA_RATE1 1 +#define RX_SAFE_MODE 7 + +/* Antenna Diversity Control Register */ +#define ANT_DIV _SFR_MEM8(0x14D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_ANT_DIV { + unsigned int ant_ctrl : 2; /* Static Antenna Diversity Switch Control */ + unsigned int ant_ext_sw_en : 1; /* Enable External Antenna Switch Control */ + unsigned int ant_div_en : 1; /* Enable Antenna Diversity */ + unsigned int : 3; + unsigned int ant_sel : 1; /* Antenna Diversity Antenna Status */ +}; + +#define ANT_DIV_struct _SFR_MEM8_STRUCT(0x14d, struct __reg_ANT_DIV) + +/* symbolic names */ + +#define ANT_1 1 +#define ANT_0 2 +#define ANT_RESET 3 +#define ANT_DIV_EXT_SW_DIS 0 +#define ANT_DIV_EXT_SW_EN 1 +#define ANTENNA_0 0 +#define ANTENNA_1 1 + +#endif /* __ASSEMBLER__ */ + + /* ANT_DIV */ + +#define ANT_CTRL0 0 +#define ANT_CTRL1 1 +#define ANT_EXT_SW_EN 2 +#define ANT_DIV_EN 3 +#define ANT_SEL 7 + +/* Transceiver Interrupt Enable Register */ +#define IRQ_MASK _SFR_MEM8(0x14E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IRQ_MASK { + unsigned int pll_lock_en : 1; /* PLL Lock Interrupt Enable */ + unsigned int pll_unlock_en : 1; /* PLL Unlock Interrupt Enable */ + unsigned int rx_start_en : 1; /* RX_START Interrupt Enable */ + unsigned int rx_end_en : 1; /* RX_END Interrupt Enable */ + unsigned int cca_ed_done_en : 1; /* End of ED Measurement Interrupt Enable */ + unsigned int ami_en : 1; /* Address Match Interrupt Enable */ + unsigned int tx_end_en : 1; /* TX_END Interrupt Enable */ + unsigned int awake_en : 1; /* Awake Interrupt Enable */ +}; + +#define IRQ_MASK_struct _SFR_MEM8_STRUCT(0x14e, struct __reg_IRQ_MASK) + +#endif /* __ASSEMBLER__ */ + + /* IRQ_MASK */ + +#define PLL_LOCK_EN 0 +#define PLL_UNLOCK_EN 1 +#define RX_START_EN 2 +#define RX_END_EN 3 +#define CCA_ED_DONE_EN 4 +#define AMI_EN 5 +#define TX_END_EN 6 +#define AWAKE_EN 7 + +/* Transceiver Interrupt Status Register */ +#define IRQ_STATUS _SFR_MEM8(0x14F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IRQ_STATUS { + unsigned int pll_lock : 1; /* PLL Lock Interrupt Status */ + unsigned int pll_unlock : 1; /* PLL Unlock Interrupt Status */ + unsigned int rx_start : 1; /* RX_START Interrupt Status */ + unsigned int rx_end : 1; /* RX_END Interrupt Status */ + unsigned int cca_ed_done : 1; /* End of ED Measurement Interrupt Status */ + unsigned int ami : 1; /* Address Match Interrupt Status */ + unsigned int tx_end : 1; /* TX_END Interrupt Status */ + unsigned int awake : 1; /* Awake Interrupt Status */ +}; + +#define IRQ_STATUS_struct _SFR_MEM8_STRUCT(0x14f, struct __reg_IRQ_STATUS) + +#endif /* __ASSEMBLER__ */ + + /* IRQ_STATUS */ + +#define PLL_LOCK 0 +#define PLL_UNLOCK 1 +#define RX_START 2 +#define RX_END 3 +#define CCA_ED_DONE 4 +#define AMI 5 +#define TX_END 6 +#define AWAKE 7 + +/* Voltage Regulator Control and Status Register */ +#define VREG_CTRL _SFR_MEM8(0x150) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_VREG_CTRL { + unsigned int : 2; + unsigned int dvdd_ok : 1; /* DVDD Supply Voltage Valid */ + unsigned int dvreg_ext : 1; /* Use External DVDD Regulator */ + unsigned int : 2; + unsigned int avdd_ok : 1; /* AVDD Supply Voltage Valid */ + unsigned int avreg_ext : 1; /* Use External AVDD Regulator */ +}; + +#define VREG_CTRL_struct _SFR_MEM8_STRUCT(0x150, struct __reg_VREG_CTRL) + +/* symbolic names */ + +#define DVDD_INT 0 +#define DVDD_EXT 1 +#define AVDD_INT 0 +#define AVDD_EXT 1 + +#endif /* __ASSEMBLER__ */ + + /* VREG_CTRL */ + +#define DVDD_OK 2 +#define DVREG_EXT 3 +#define AVDD_OK 6 +#define AVREG_EXT 7 + +/* Battery Monitor Control and Status Register */ +#define BATMON _SFR_MEM8(0x151) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_BATMON { + unsigned int batmon_vth : 4; /* Battery Monitor Threshold Voltage */ + unsigned int batmon_hr : 1; /* Battery Monitor Voltage Range */ + unsigned int batmon_ok : 1; /* Battery Monitor Status */ + unsigned int bat_low_en : 1; /* Battery Monitor Interrupt Enable */ + unsigned int bat_low : 1; /* Battery Monitor Interrupt Status */ +}; + +#define BATMON_struct _SFR_MEM8_STRUCT(0x151, struct __reg_BATMON) + +/* symbolic names */ + +#define BATMON_HR_DIS 0 +#define BATMON_HR_EN 1 + +#endif /* __ASSEMBLER__ */ + + /* BATMON */ + +#define BATMON_VTH0 0 +#define BATMON_VTH1 1 +#define BATMON_VTH2 2 +#define BATMON_VTH3 3 +#define BATMON_HR 4 +#define BATMON_OK 5 +#define BAT_LOW_EN 6 +#define BAT_LOW 7 + +/* Crystal Oscillator Control Register */ +#define XOSC_CTRL _SFR_MEM8(0x152) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_XOSC_CTRL { + unsigned int xtal_trim : 4; /* Crystal Oscillator Load Capacitance Trimming */ + unsigned int xtal_mode : 4; /* Crystal Oscillator Operating Mode */ +}; + +#define XOSC_CTRL_struct _SFR_MEM8_STRUCT(0x152, struct __reg_XOSC_CTRL) + +/* symbolic names */ + +#define XTAL_TRIM_MIN 0 +#define XTAL_TRIM_MAX 15 + +#endif /* __ASSEMBLER__ */ + + /* XOSC_CTRL */ + +#define XTAL_TRIM0 0 +#define XTAL_TRIM1 1 +#define XTAL_TRIM2 2 +#define XTAL_TRIM3 3 +#define XTAL_MODE0 4 +#define XTAL_MODE1 5 +#define XTAL_MODE2 6 +#define XTAL_MODE3 7 + +/* Transceiver Receiver Sensitivity Control Register */ +#define RX_SYN _SFR_MEM8(0x155) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_RX_SYN { + unsigned int rx_pdt_level : 4; /* Reduce Receiver Sensitivity */ + unsigned int : 3; + unsigned int rx_pdt_dis : 1; /* Prevent Frame Reception */ +}; + +#define RX_SYN_struct _SFR_MEM8_STRUCT(0x155, struct __reg_RX_SYN) + +/* symbolic names */ + +#define RX_PDT_LEVEL_MIN 0 +#define RX_PDT_LEVEL_MAX 15 + +#endif /* __ASSEMBLER__ */ + + /* RX_SYN */ + +#define RX_PDT_LEVEL0 0 +#define RX_PDT_LEVEL1 1 +#define RX_PDT_LEVEL2 2 +#define RX_PDT_LEVEL3 3 +#define RX_PDT_DIS 7 + +/* Transceiver Acknowledgment Frame Control Register 1 */ +#define XAH_CTRL_1 _SFR_MEM8(0x157) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_XAH_CTRL_1 { + unsigned int : 1; + unsigned int aack_prom_mode : 1; /* Enable Promiscuous Mode */ + unsigned int aack_ack_time : 1; /* Reduce Acknowledgment Time */ + unsigned int : 1; + unsigned int aack_upld_res_ft : 1; /* Process Reserved Frames */ + unsigned int aack_fltr_res_ft : 1; /* Filter Reserved Frames */ + unsigned int : 2; +}; + +#define XAH_CTRL_1_struct _SFR_MEM8_STRUCT(0x157, struct __reg_XAH_CTRL_1) + +/* symbolic names */ + +#define AACK_ACK_TIME_12_SYM 0 +#define AACK_ACK_TIME_2_SYM 1 + +#endif /* __ASSEMBLER__ */ + + /* XAH_CTRL_1 */ + +#define AACK_PROM_MODE 1 +#define AACK_ACK_TIME 2 +#define AACK_UPLD_RES_FT 4 +#define AACK_FLTR_RES_FT 5 + +/* Transceiver Filter Tuning Control Register */ +#define FTN_CTRL _SFR_MEM8(0x158) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_FTN_CTRL { + unsigned int : 7; + unsigned int ftn_start : 1; /* Start Calibration Loop of Filter Tuning Network */ +}; + +#define FTN_CTRL_struct _SFR_MEM8_STRUCT(0x158, struct __reg_FTN_CTRL) + +#endif /* __ASSEMBLER__ */ + + /* FTN_CTRL */ + +#define FTN_START 7 + +/* Transceiver Center Frequency Calibration Control Register */ +#define PLL_CF _SFR_MEM8(0x15A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PLL_CF { + unsigned int : 7; + unsigned int pll_cf_start : 1; /* Start Center Frequency Calibration */ +}; + +#define PLL_CF_struct _SFR_MEM8_STRUCT(0x15a, struct __reg_PLL_CF) + +#endif /* __ASSEMBLER__ */ + + /* PLL_CF */ + +#define PLL_CF_START 7 + +/* Transceiver Delay Cell Calibration Control Register */ +#define PLL_DCU _SFR_MEM8(0x15B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PLL_DCU { + unsigned int : 7; + unsigned int pll_dcu_start : 1; /* Start Delay Cell Calibration */ +}; + +#define PLL_DCU_struct _SFR_MEM8_STRUCT(0x15b, struct __reg_PLL_DCU) + +#endif /* __ASSEMBLER__ */ + + /* PLL_DCU */ + +#define PLL_DCU_START 7 + +/* Device Identification Register (Part Number) */ +#define PART_NUM _SFR_MEM8(0x15C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PART_NUM { + unsigned int part_num : 8; /* Part Number */ +}; + +#define PART_NUM_struct _SFR_MEM8_STRUCT(0x15c, struct __reg_PART_NUM) + +/* symbolic names */ + +#define P_ATmega128RFA1 131 + +#endif /* __ASSEMBLER__ */ + + /* PART_NUM */ + +#define PART_NUM0 0 +#define PART_NUM1 1 +#define PART_NUM2 2 +#define PART_NUM3 3 +#define PART_NUM4 4 +#define PART_NUM5 5 +#define PART_NUM6 6 +#define PART_NUM7 7 + +/* Device Identification Register (Version Number) */ +#define VERSION_NUM _SFR_MEM8(0x15D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_VERSION_NUM { + unsigned int version_num : 8; /* Version Number */ +}; + +#define VERSION_NUM_struct _SFR_MEM8_STRUCT(0x15d, struct __reg_VERSION_NUM) + +/* symbolic names */ + +#define REV_A 2 +#define REV_B 3 + +#endif /* __ASSEMBLER__ */ + + /* VERSION_NUM */ + +#define VERSION_NUM0 0 +#define VERSION_NUM1 1 +#define VERSION_NUM2 2 +#define VERSION_NUM3 3 +#define VERSION_NUM4 4 +#define VERSION_NUM5 5 +#define VERSION_NUM6 6 +#define VERSION_NUM7 7 + +/* Device Identification Register (Manufacture ID Low Byte) */ +#define MAN_ID_0 _SFR_MEM8(0x15E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_MAN_ID_0 { + unsigned int man_id_0 : 8; /* Manufacturer ID (Low Byte) */ +}; + +#define MAN_ID_0_struct _SFR_MEM8_STRUCT(0x15e, struct __reg_MAN_ID_0) + +/* symbolic names */ + +#define ATMEL_BYTE_0 31 + +#endif /* __ASSEMBLER__ */ + + /* MAN_ID_0 */ + +#define MAN_ID_00 0 +#define MAN_ID_01 1 +#define MAN_ID_02 2 +#define MAN_ID_03 3 +#define MAN_ID_04 4 +#define MAN_ID_05 5 +#define MAN_ID_06 6 +#define MAN_ID_07 7 + +/* Device Identification Register (Manufacture ID High Byte) */ +#define MAN_ID_1 _SFR_MEM8(0x15F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_MAN_ID_1 { + unsigned int man_id_1 : 8; /* Manufacturer ID (High Byte) */ +}; + +#define MAN_ID_1_struct _SFR_MEM8_STRUCT(0x15f, struct __reg_MAN_ID_1) + +/* symbolic names */ + +#define ATMEL_BYTE_1 0 + +#endif /* __ASSEMBLER__ */ + + /* MAN_ID_1 */ + +#define MAN_ID_10 0 +#define MAN_ID_11 1 +#define MAN_ID_12 2 +#define MAN_ID_13 3 +#define MAN_ID_14 4 +#define MAN_ID_15 5 +#define MAN_ID_16 6 +#define MAN_ID_17 7 + +/* Transceiver MAC Short Address Register (Low Byte) */ +#define SHORT_ADDR_0 _SFR_MEM8(0x160) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SHORT_ADDR_0 { + unsigned int short_addr_0 : 8; /* MAC Short Address */ +}; + +#define SHORT_ADDR_0_struct _SFR_MEM8_STRUCT(0x160, struct __reg_SHORT_ADDR_0) + +#endif /* __ASSEMBLER__ */ + + /* SHORT_ADDR_0 */ + +#define SHORT_ADDR_00 0 +#define SHORT_ADDR_01 1 +#define SHORT_ADDR_02 2 +#define SHORT_ADDR_03 3 +#define SHORT_ADDR_04 4 +#define SHORT_ADDR_05 5 +#define SHORT_ADDR_06 6 +#define SHORT_ADDR_07 7 + +/* Transceiver MAC Short Address Register (High Byte) */ +#define SHORT_ADDR_1 _SFR_MEM8(0x161) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_SHORT_ADDR_1 { + unsigned int short_addr_1 : 8; /* MAC Short Address */ +}; + +#define SHORT_ADDR_1_struct _SFR_MEM8_STRUCT(0x161, struct __reg_SHORT_ADDR_1) + +#endif /* __ASSEMBLER__ */ + + /* SHORT_ADDR_1 */ + +#define SHORT_ADDR_10 0 +#define SHORT_ADDR_11 1 +#define SHORT_ADDR_12 2 +#define SHORT_ADDR_13 3 +#define SHORT_ADDR_14 4 +#define SHORT_ADDR_15 5 +#define SHORT_ADDR_16 6 +#define SHORT_ADDR_17 7 + +/* Transceiver Personal Area Network ID Register (Low Byte) */ +#define PAN_ID_0 _SFR_MEM8(0x162) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PAN_ID_0 { + unsigned int pan_id_0 : 8; /* MAC Personal Area Network ID */ +}; + +#define PAN_ID_0_struct _SFR_MEM8_STRUCT(0x162, struct __reg_PAN_ID_0) + +#endif /* __ASSEMBLER__ */ + + /* PAN_ID_0 */ + +#define PAN_ID_00 0 +#define PAN_ID_01 1 +#define PAN_ID_02 2 +#define PAN_ID_03 3 +#define PAN_ID_04 4 +#define PAN_ID_05 5 +#define PAN_ID_06 6 +#define PAN_ID_07 7 + +/* Transceiver Personal Area Network ID Register (High Byte) */ +#define PAN_ID_1 _SFR_MEM8(0x163) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_PAN_ID_1 { + unsigned int pan_id_1 : 8; /* MAC Personal Area Network ID */ +}; + +#define PAN_ID_1_struct _SFR_MEM8_STRUCT(0x163, struct __reg_PAN_ID_1) + +#endif /* __ASSEMBLER__ */ + + /* PAN_ID_1 */ + +#define PAN_ID_10 0 +#define PAN_ID_11 1 +#define PAN_ID_12 2 +#define PAN_ID_13 3 +#define PAN_ID_14 4 +#define PAN_ID_15 5 +#define PAN_ID_16 6 +#define PAN_ID_17 7 + +/* Transceiver MAC IEEE Address Register 0 */ +#define IEEE_ADDR_0 _SFR_MEM8(0x164) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_0 { + unsigned int ieee_addr_0 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_0_struct _SFR_MEM8_STRUCT(0x164, struct __reg_IEEE_ADDR_0) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_0 */ + +#define IEEE_ADDR_00 0 +#define IEEE_ADDR_01 1 +#define IEEE_ADDR_02 2 +#define IEEE_ADDR_03 3 +#define IEEE_ADDR_04 4 +#define IEEE_ADDR_05 5 +#define IEEE_ADDR_06 6 +#define IEEE_ADDR_07 7 + +/* Transceiver MAC IEEE Address Register 1 */ +#define IEEE_ADDR_1 _SFR_MEM8(0x165) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_1 { + unsigned int ieee_addr_1 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_1_struct _SFR_MEM8_STRUCT(0x165, struct __reg_IEEE_ADDR_1) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_1 */ + +#define IEEE_ADDR_10 0 +#define IEEE_ADDR_11 1 +#define IEEE_ADDR_12 2 +#define IEEE_ADDR_13 3 +#define IEEE_ADDR_14 4 +#define IEEE_ADDR_15 5 +#define IEEE_ADDR_16 6 +#define IEEE_ADDR_17 7 + +/* Transceiver MAC IEEE Address Register 2 */ +#define IEEE_ADDR_2 _SFR_MEM8(0x166) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_2 { + unsigned int ieee_addr_2 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_2_struct _SFR_MEM8_STRUCT(0x166, struct __reg_IEEE_ADDR_2) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_2 */ + +#define IEEE_ADDR_20 0 +#define IEEE_ADDR_21 1 +#define IEEE_ADDR_22 2 +#define IEEE_ADDR_23 3 +#define IEEE_ADDR_24 4 +#define IEEE_ADDR_25 5 +#define IEEE_ADDR_26 6 +#define IEEE_ADDR_27 7 + +/* Transceiver MAC IEEE Address Register 3 */ +#define IEEE_ADDR_3 _SFR_MEM8(0x167) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_3 { + unsigned int ieee_addr_3 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_3_struct _SFR_MEM8_STRUCT(0x167, struct __reg_IEEE_ADDR_3) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_3 */ + +#define IEEE_ADDR_30 0 +#define IEEE_ADDR_31 1 +#define IEEE_ADDR_32 2 +#define IEEE_ADDR_33 3 +#define IEEE_ADDR_34 4 +#define IEEE_ADDR_35 5 +#define IEEE_ADDR_36 6 +#define IEEE_ADDR_37 7 + +/* Transceiver MAC IEEE Address Register 4 */ +#define IEEE_ADDR_4 _SFR_MEM8(0x168) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_4 { + unsigned int ieee_addr_4 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_4_struct _SFR_MEM8_STRUCT(0x168, struct __reg_IEEE_ADDR_4) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_4 */ + +#define IEEE_ADDR_40 0 +#define IEEE_ADDR_41 1 +#define IEEE_ADDR_42 2 +#define IEEE_ADDR_43 3 +#define IEEE_ADDR_44 4 +#define IEEE_ADDR_45 5 +#define IEEE_ADDR_46 6 +#define IEEE_ADDR_47 7 + +/* Transceiver MAC IEEE Address Register 5 */ +#define IEEE_ADDR_5 _SFR_MEM8(0x169) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_5 { + unsigned int ieee_addr_5 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_5_struct _SFR_MEM8_STRUCT(0x169, struct __reg_IEEE_ADDR_5) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_5 */ + +#define IEEE_ADDR_50 0 +#define IEEE_ADDR_51 1 +#define IEEE_ADDR_52 2 +#define IEEE_ADDR_53 3 +#define IEEE_ADDR_54 4 +#define IEEE_ADDR_55 5 +#define IEEE_ADDR_56 6 +#define IEEE_ADDR_57 7 + +/* Transceiver MAC IEEE Address Register 6 */ +#define IEEE_ADDR_6 _SFR_MEM8(0x16A) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_6 { + unsigned int ieee_addr_6 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_6_struct _SFR_MEM8_STRUCT(0x16a, struct __reg_IEEE_ADDR_6) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_6 */ + +#define IEEE_ADDR_60 0 +#define IEEE_ADDR_61 1 +#define IEEE_ADDR_62 2 +#define IEEE_ADDR_63 3 +#define IEEE_ADDR_64 4 +#define IEEE_ADDR_65 5 +#define IEEE_ADDR_66 6 +#define IEEE_ADDR_67 7 + +/* Transceiver MAC IEEE Address Register 7 */ +#define IEEE_ADDR_7 _SFR_MEM8(0x16B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_IEEE_ADDR_7 { + unsigned int ieee_addr_7 : 8; /* MAC IEEE Address */ +}; + +#define IEEE_ADDR_7_struct _SFR_MEM8_STRUCT(0x16b, struct __reg_IEEE_ADDR_7) + +#endif /* __ASSEMBLER__ */ + + /* IEEE_ADDR_7 */ + +#define IEEE_ADDR_70 0 +#define IEEE_ADDR_71 1 +#define IEEE_ADDR_72 2 +#define IEEE_ADDR_73 3 +#define IEEE_ADDR_74 4 +#define IEEE_ADDR_75 5 +#define IEEE_ADDR_76 6 +#define IEEE_ADDR_77 7 + +/* Transceiver Extended Operating Mode Control Register */ +#define XAH_CTRL_0 _SFR_MEM8(0x16C) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_XAH_CTRL_0 { + unsigned int slotted_operation : 1; /* Set Slotted Acknowledgment */ + unsigned int max_csma_retries : 3; /* Maximum Number of CSMA-CA Procedure Repetition Attempts */ + unsigned int max_frame_retries : 4; /* Maximum Number of Frame Re-transmission Attempts */ +}; + +#define XAH_CTRL_0_struct _SFR_MEM8_STRUCT(0x16c, struct __reg_XAH_CTRL_0) + +/* symbolic names */ + +#define SLOTTED_OP_DIS 0 +#define SLOTTED_OP_EN 1 + +#endif /* __ASSEMBLER__ */ + + /* XAH_CTRL_0 */ + +#define SLOTTED_OPERATION 0 +#define MAX_CSMA_RETRIES0 1 +#define MAX_CSMA_RETRIES1 2 +#define MAX_CSMA_RETRIES2 3 +#define MAX_FRAME_RETRIES0 4 +#define MAX_FRAME_RETRIES1 5 +#define MAX_FRAME_RETRIES2 6 +#define MAX_FRAME_RETRIES3 7 + +/* Transceiver CSMA-CA Random Number Generator Seed Register */ +#define CSMA_SEED_0 _SFR_MEM8(0x16D) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_CSMA_SEED_0 { + unsigned int csma_seed_0 : 8; /* Seed Value for CSMA Random Number Generator */ +}; + +#define CSMA_SEED_0_struct _SFR_MEM8_STRUCT(0x16d, struct __reg_CSMA_SEED_0) + +#endif /* __ASSEMBLER__ */ + + /* CSMA_SEED_0 */ + +#define CSMA_SEED_00 0 +#define CSMA_SEED_01 1 +#define CSMA_SEED_02 2 +#define CSMA_SEED_03 3 +#define CSMA_SEED_04 4 +#define CSMA_SEED_05 5 +#define CSMA_SEED_06 6 +#define CSMA_SEED_07 7 + +/* Transceiver Acknowledgment Frame Control Register 2 */ +#define CSMA_SEED_1 _SFR_MEM8(0x16E) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_CSMA_SEED_1 { + unsigned int csma_seed_1 : 3; /* Seed Value for CSMA Random Number Generator */ + unsigned int aack_i_am_coord : 1; /* Set Personal Area Network Coordinator */ + unsigned int aack_dis_ack : 1; /* Disable Acknowledgment Frame Transmission */ + unsigned int aack_set_pd : 1; /* Set Frame Pending Sub-field */ + unsigned int aack_fvn_mode : 2; /* Acknowledgment Frame Filter Mode */ +}; + +#define CSMA_SEED_1_struct _SFR_MEM8_STRUCT(0x16e, struct __reg_CSMA_SEED_1) + +#endif /* __ASSEMBLER__ */ + + /* CSMA_SEED_1 */ + +#define CSMA_SEED_10 0 +#define CSMA_SEED_11 1 +#define CSMA_SEED_12 2 +#define AACK_I_AM_COORD 3 +#define AACK_DIS_ACK 4 +#define AACK_SET_PD 5 +#define AACK_FVN_MODE0 6 +#define AACK_FVN_MODE1 7 + +/* Transceiver CSMA-CA Back-off Exponent Control Register */ +#define CSMA_BE _SFR_MEM8(0x16F) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_CSMA_BE { + unsigned int min_be : 4; /* Minimum Back-off Exponent */ + unsigned int max_be : 4; /* Maximum Back-off Exponent */ +}; + +#define CSMA_BE_struct _SFR_MEM8_STRUCT(0x16f, struct __reg_CSMA_BE) + +#endif /* __ASSEMBLER__ */ + + /* CSMA_BE */ + +#define MIN_BE0 0 +#define MIN_BE1 1 +#define MIN_BE2 2 +#define MIN_BE3 3 +#define MAX_BE0 4 +#define MAX_BE1 5 +#define MAX_BE2 6 +#define MAX_BE3 7 + +/* Transceiver Digital Test Control Register */ +#define TST_CTRL_DIGI _SFR_MEM8(0x176) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TST_CTRL_DIGI { + unsigned int tst_ctrl_dig : 4; /* Digital Test Controller Register */ + unsigned int : 4; +}; + +#define TST_CTRL_DIGI_struct _SFR_MEM8_STRUCT(0x176, struct __reg_TST_CTRL_DIGI) + +#endif /* __ASSEMBLER__ */ + + /* TST_CTRL_DIGI */ + +#define TST_CTRL_DIG0 0 +#define TST_CTRL_DIG1 1 +#define TST_CTRL_DIG2 2 +#define TST_CTRL_DIG3 3 + +/* Transceiver Received Frame Length Register */ +#define TST_RX_LENGTH _SFR_MEM8(0x17B) + +#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__)) + +struct __reg_TST_RX_LENGTH { + unsigned int rx_length : 8; /* Received Frame Length */ +}; + +#define TST_RX_LENGTH_struct _SFR_MEM8_STRUCT(0x17b, struct __reg_TST_RX_LENGTH) + +#endif /* __ASSEMBLER__ */ + + /* TST_RX_LENGTH */ + +#define RX_LENGTH0 0 +#define RX_LENGTH1 1 +#define RX_LENGTH2 2 +#define RX_LENGTH3 3 +#define RX_LENGTH4 4 +#define RX_LENGTH5 5 +#define RX_LENGTH6 6 +#define RX_LENGTH7 7 + +/* Start of frame buffer */ +#define TRXFBST _SFR_MEM8(0x180) + + /* TRXFBST */ + +#define TRXFBST0 0 +#define TRXFBST1 1 +#define TRXFBST2 2 +#define TRXFBST3 3 +#define TRXFBST4 4 +#define TRXFBST5 5 +#define TRXFBST6 6 +#define TRXFBST7 7 + +/* End of frame buffer */ +#define TRXFBEND _SFR_MEM8(0x1FF) + + /* TRXFBEND */ + +#define TRXFBEND0 0 +#define TRXFBEND1 1 +#define TRXFBEND2 2 +#define TRXFBEND3 3 +#define TRXFBEND4 4 +#define TRXFBEND5 5 +#define TRXFBEND6 6 +#define TRXFBEND7 7 + + +/* Interrupt vectors */ +/* Vector 0 is the reset vector */ + +#define _VECTORS_SIZE 288 + +/* External Interrupt Request 0 */ +#define INT0_vect _VECTOR(1) +#define INT0_vect_num 1 + +/* External Interrupt Request 1 */ +#define INT1_vect _VECTOR(2) +#define INT1_vect_num 2 + +/* External Interrupt Request 2 */ +#define INT2_vect _VECTOR(3) +#define INT2_vect_num 3 + +/* External Interrupt Request 3 */ +#define INT3_vect _VECTOR(4) +#define INT3_vect_num 4 + +/* External Interrupt Request 4 */ +#define INT4_vect _VECTOR(5) +#define INT4_vect_num 5 + +/* External Interrupt Request 5 */ +#define INT5_vect _VECTOR(6) +#define INT5_vect_num 6 + +/* External Interrupt Request 6 */ +#define INT6_vect _VECTOR(7) +#define INT6_vect_num 7 + +/* External Interrupt Request 7 */ +#define INT7_vect _VECTOR(8) +#define INT7_vect_num 8 + +/* Pin Change Interrupt Request 0 */ +#define PCINT0_vect _VECTOR(9) +#define PCINT0_vect_num 9 + +/* Pin Change Interrupt Request 1 */ +#define PCINT1_vect _VECTOR(10) +#define PCINT1_vect_num 10 + +/* Pin Change Interrupt Request 2 */ +#define PCINT2_vect _VECTOR(11) +#define PCINT2_vect_num 11 + +/* Watchdog Time-out Interrupt */ +#define WDT_vect _VECTOR(12) +#define WDT_vect_num 12 + +/* Timer/Counter2 Compare Match A */ +#define TIMER2_COMPA_vect _VECTOR(13) +#define TIMER2_COMPA_vect_num 13 + +/* Timer/Counter2 Compare Match B */ +#define TIMER2_COMPB_vect _VECTOR(14) +#define TIMER2_COMPB_vect_num 14 + +/* Timer/Counter2 Overflow */ +#define TIMER2_OVF_vect _VECTOR(15) +#define TIMER2_OVF_vect_num 15 + +/* Timer/Counter1 Capture Event */ +#define TIMER1_CAPT_vect _VECTOR(16) +#define TIMER1_CAPT_vect_num 16 + +/* Timer/Counter1 Compare Match A */ +#define TIMER1_COMPA_vect _VECTOR(17) +#define TIMER1_COMPA_vect_num 17 + +/* Timer/Counter1 Compare Match B */ +#define TIMER1_COMPB_vect _VECTOR(18) +#define TIMER1_COMPB_vect_num 18 + +/* Timer/Counter1 Compare Match C */ +#define TIMER1_COMPC_vect _VECTOR(19) +#define TIMER1_COMPC_vect_num 19 + +/* Timer/Counter1 Overflow */ +#define TIMER1_OVF_vect _VECTOR(20) +#define TIMER1_OVF_vect_num 20 + +/* Timer/Counter0 Compare Match A */ +#define TIMER0_COMPA_vect _VECTOR(21) +#define TIMER0_COMPA_vect_num 21 + +/* Timer/Counter0 Compare Match B */ +#define TIMER0_COMPB_vect _VECTOR(22) +#define TIMER0_COMPB_vect_num 22 + +/* Timer/Counter0 Overflow */ +#define TIMER0_OVF_vect _VECTOR(23) +#define TIMER0_OVF_vect_num 23 + +/* SPI Serial Transfer Complete */ +#define SPI_STC_vect _VECTOR(24) +#define SPI_STC_vect_num 24 + +/* USART0, Rx Complete */ +#define USART0_RX_vect _VECTOR(25) +#define USART0_RX_vect_num 25 + +/* USART0 Data register Empty */ +#define USART0_UDRE_vect _VECTOR(26) +#define USART0_UDRE_vect_num 26 + +/* USART0, Tx Complete */ +#define USART0_TX_vect _VECTOR(27) +#define USART0_TX_vect_num 27 + +/* Analog Comparator */ +#define ANALOG_COMP_vect _VECTOR(28) +#define ANALOG_COMP_vect_num 28 + +/* ADC Conversion Complete */ +#define ADC_vect _VECTOR(29) +#define ADC_vect_num 29 + +/* EEPROM Ready */ +#define EE_READY_vect _VECTOR(30) +#define EE_READY_vect_num 30 + +/* Timer/Counter3 Capture Event */ +#define TIMER3_CAPT_vect _VECTOR(31) +#define TIMER3_CAPT_vect_num 31 + +/* Timer/Counter3 Compare Match A */ +#define TIMER3_COMPA_vect _VECTOR(32) +#define TIMER3_COMPA_vect_num 32 + +/* Timer/Counter3 Compare Match B */ +#define TIMER3_COMPB_vect _VECTOR(33) +#define TIMER3_COMPB_vect_num 33 + +/* Timer/Counter3 Compare Match C */ +#define TIMER3_COMPC_vect _VECTOR(34) +#define TIMER3_COMPC_vect_num 34 + +/* Timer/Counter3 Overflow */ +#define TIMER3_OVF_vect _VECTOR(35) +#define TIMER3_OVF_vect_num 35 + +/* USART1, Rx Complete */ +#define USART1_RX_vect _VECTOR(36) +#define USART1_RX_vect_num 36 + +/* USART1 Data register Empty */ +#define USART1_UDRE_vect _VECTOR(37) +#define USART1_UDRE_vect_num 37 + +/* USART1, Tx Complete */ +#define USART1_TX_vect _VECTOR(38) +#define USART1_TX_vect_num 38 + +/* 2-wire Serial Interface */ +#define TWI_vect _VECTOR(39) +#define TWI_vect_num 39 + +/* Store Program Memory Read */ +#define SPM_READY_vect _VECTOR(40) +#define SPM_READY_vect_num 40 + +/* Timer/Counter4 Capture Event */ +#define TIMER4_CAPT_vect _VECTOR(41) +#define TIMER4_CAPT_vect_num 41 + +/* Timer/Counter4 Compare Match A */ +#define TIMER4_COMPA_vect _VECTOR(42) +#define TIMER4_COMPA_vect_num 42 + +/* Timer/Counter4 Compare Match B */ +#define TIMER4_COMPB_vect _VECTOR(43) +#define TIMER4_COMPB_vect_num 43 + +/* Timer/Counter4 Compare Match C */ +#define TIMER4_COMPC_vect _VECTOR(44) +#define TIMER4_COMPC_vect_num 44 + +/* Timer/Counter4 Overflow */ +#define TIMER4_OVF_vect _VECTOR(45) +#define TIMER4_OVF_vect_num 45 + +/* Timer/Counter5 Capture Event */ +#define TIMER5_CAPT_vect _VECTOR(46) +#define TIMER5_CAPT_vect_num 46 + +/* Timer/Counter5 Compare Match A */ +#define TIMER5_COMPA_vect _VECTOR(47) +#define TIMER5_COMPA_vect_num 47 + +/* Timer/Counter5 Compare Match B */ +#define TIMER5_COMPB_vect _VECTOR(48) +#define TIMER5_COMPB_vect_num 48 + +/* Timer/Counter5 Compare Match C */ +#define TIMER5_COMPC_vect _VECTOR(49) +#define TIMER5_COMPC_vect_num 49 + +/* Timer/Counter5 Overflow */ +#define TIMER5_OVF_vect _VECTOR(50) +#define TIMER5_OVF_vect_num 50 + +/* USART2, Rx Complete */ +#define USART2_RX_vect _VECTOR(51) +#define USART2_RX_vect_num 51 + +/* USART2 Data register Empty */ +#define USART2_UDRE_vect _VECTOR(52) +#define USART2_UDRE_vect_num 52 + +/* USART2, Tx Complete */ +#define USART2_TX_vect _VECTOR(53) +#define USART2_TX_vect_num 53 + +/* USART3, Rx Complete */ +#define USART3_RX_vect _VECTOR(54) +#define USART3_RX_vect_num 54 + +/* USART3 Data register Empty */ +#define USART3_UDRE_vect _VECTOR(55) +#define USART3_UDRE_vect_num 55 + +/* USART3, Tx Complete */ +#define USART3_TX_vect _VECTOR(56) +#define USART3_TX_vect_num 56 + +/* TRX24 - PLL lock interrupt */ +#define TRX24_PLL_LOCK_vect _VECTOR(57) +#define TRX24_PLL_LOCK_vect_num 57 + +/* TRX24 - PLL unlock interrupt */ +#define TRX24_PLL_UNLOCK_vect _VECTOR(58) +#define TRX24_PLL_UNLOCK_vect_num 58 + +/* TRX24 - Receive start interrupt */ +#define TRX24_RX_START_vect _VECTOR(59) +#define TRX24_RX_START_vect_num 59 + +/* TRX24 - RX_END interrupt */ +#define TRX24_RX_END_vect _VECTOR(60) +#define TRX24_RX_END_vect_num 60 + +/* TRX24 - CCA/ED done interrupt */ +#define TRX24_CCA_ED_DONE_vect _VECTOR(61) +#define TRX24_CCA_ED_DONE_vect_num 61 + +/* TRX24 - XAH - AMI */ +#define TRX24_XAH_AMI_vect _VECTOR(62) +#define TRX24_XAH_AMI_vect_num 62 + +/* TRX24 - TX_END interrupt */ +#define TRX24_TX_END_vect _VECTOR(63) +#define TRX24_TX_END_vect_num 63 + +/* TRX24 AWAKE - tranceiver is reaching state TRX_OFF */ +#define TRX24_AWAKE_vect _VECTOR(64) +#define TRX24_AWAKE_vect_num 64 + +/* Symbol counter - compare match 1 interrupt */ +#define SCNT_CMP1_vect _VECTOR(65) +#define SCNT_CMP1_vect_num 65 + +/* Symbol counter - compare match 2 interrupt */ +#define SCNT_CMP2_vect _VECTOR(66) +#define SCNT_CMP2_vect_num 66 + +/* Symbol counter - compare match 3 interrupt */ +#define SCNT_CMP3_vect _VECTOR(67) +#define SCNT_CMP3_vect_num 67 + +/* Symbol counter - overflow interrupt */ +#define SCNT_OVFL_vect _VECTOR(68) +#define SCNT_OVFL_vect_num 68 + +/* Symbol counter - backoff interrupt */ +#define SCNT_BACKOFF_vect _VECTOR(69) +#define SCNT_BACKOFF_vect_num 69 + +/* AES engine ready interrupt */ +#define AES_READY_vect _VECTOR(70) +#define AES_READY_vect_num 70 + +/* Battery monitor indicates supply voltage below threshold */ +#define BAT_LOW_vect _VECTOR(71) +#define BAT_LOW_vect_num 71 + + +/* memory parameters */ + +#define SPM_PAGESIZE (256) +#define RAMSTART (0x200) +#define RAMSIZE (0x4000) +#define RAMEND (0x41FF) +#define XRAMSTART (0x0000) +#define XRAMSIZE (0x0000) +#define XRAMEND RAMEND +#define E2END (0xFFF) +#define E2PAGESIZE (0x08) +#define FLASHEND (0x1ffff) + + +/* Fuses */ + +#define FUSE_MEMORY_SIZE 3 + +/* LFUSE Byte */ +#define FUSE_CKSEL0 ~_BV(0) /* Select Clock Source */ +#define FUSE_CKSEL1 ~_BV(1) /* Select Clock Source */ +#define FUSE_CKSEL2 ~_BV(2) /* Select Clock Source */ +#define FUSE_CKSEL3 ~_BV(3) /* Select Clock Source */ +#define FUSE_SUT0 ~_BV(4) /* Select start-up time */ +#define FUSE_SUT1 ~_BV(5) /* Select start-up time */ +#define FUSE_CKOUT ~_BV(6) /* Clock output */ +#define FUSE_CKDIV8 ~_BV(7) /* Divide clock by 8 */ +#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8) + +/* HFUSE Byte */ +#define FUSE_BOOTRST ~_BV(0) /* Select Reset Vector */ +#define FUSE_BOOTSZ0 ~_BV(1) /* Select Boot Size */ +#define FUSE_BOOTSZ1 ~_BV(2) /* Select Boot Size */ +#define FUSE_EESAVE ~_BV(3) /* EEPROM memory is preserved through chip erase */ +#define FUSE_WDTON ~_BV(4) /* Watchdog timer always on */ +#define FUSE_SPIEN ~_BV(5) /* Enable Serial programming and Data Downloading */ +#define FUSE_JTAGEN ~_BV(6) /* Enable JTAG */ +#define FUSE_OCDEN ~_BV(7) /* Enable OCD */ +#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_BOOTSZ1 & FUSE_SPIEN & FUSE_JTAGEN) + +/* EFUSE Byte */ +#define FUSE_BODLEVEL0 ~_BV(0) /* Brown-out Detector trigger level */ +#define FUSE_BODLEVEL1 ~_BV(1) /* Brown-out Detector trigger level */ +#define FUSE_BODLEVEL2 ~_BV(2) /* Brown-out Detector trigger level */ +#define EFUSE_DEFAULT (0xFF) + + + +/* Lock Bits */ + +#define __BOOT_LOCK_BITS_0_EXIST +#define __BOOT_LOCK_BITS_1_EXIST +#define __LOCK_BITS_EXIST + + +/* Signature */ + +#define SIGNATURE_0 0x1E +#define SIGNATURE_1 0xA7 +#define SIGNATURE_2 0x01 + +#endif /* _AVR_IOM128RFA1_H_ */ |