/projects/avrada/tool_sampleM2560
with Interfaces; use Interfaces;
with System;
-- architecture = AVR8
-- AVR Studio 5 XML avr register definition generator
-- Maciej Kucia, Krakow 2012
package AVR.ATmega2560 is
--
-- ANALOG_COMPARATOR
--
-- ADC Control and Status Register B
ADCSRB : Unsigned_8;
for ADCSRB'Address use System'To_Address (16#7B#);
ADCSRB_ACME : constant := 16#40#; -- Analog Comparator Multiplexer Enable
--
-- ADCSRB
--
-- Analog Comparator Control And Status Register
ACSR : Unsigned_8;
for ACSR'Address use System'To_Address (16#50#);
ACSR_ACD : constant := 16#80#; -- Analog Comparator Disable
ACSR_ACBG : constant := 16#40#; -- Analog Comparator Bandgap Select
ACSR_ACO : constant := 16#20#; -- Analog Compare Output
ACSR_ACI : constant := 16#10#; -- Analog Comparator Interrupt Flag
ACSR_ACIE : constant := 16#08#; -- Analog Comparator Interrupt Enable
ACSR_ACIC : constant := 16#04#; -- Analog Comparator Input Capture Enable
ACSR_ACIS : constant := 16#03#; -- Analog Comparator Interrupt Mode Select bits
--
-- ACSR
--
-- Digital Input Disable Register 1
DIDR1 : Unsigned_8;
for DIDR1'Address use System'To_Address (16#7F#);
DIDR1_AIN1D : constant := 16#02#; -- AIN1 Digital Input Disable
DIDR1_AIN0D : constant := 16#01#; -- AIN0 Digital Input Disable
--
-- USART0
--
-- USART I/O Data Register
UDR0 : Unsigned_8;
for UDR0'Address use System'To_Address (16#C6#);
--
-- UDR0
--
-- USART Control and Status Register A
UCSR0A : Unsigned_8;
for UCSR0A'Address use System'To_Address (16#C0#);
UCSR0A_RXC0 : constant := 16#80#; -- USART Receive Complete
UCSR0A_TXC0 : constant := 16#40#; -- USART Transmitt Complete
UCSR0A_UDRE0 : constant := 16#20#; -- USART Data Register Empty
UCSR0A_FE0 : constant := 16#10#; -- Framing Error
UCSR0A_DOR0 : constant := 16#08#; -- Data overRun
UCSR0A_UPE0 : constant := 16#04#; -- Parity Error
UCSR0A_U2X0 : constant := 16#02#; -- Double the USART transmission speed
UCSR0A_MPCM0 : constant := 16#01#; -- Multi-processor Communication Mode
--
-- UCSR0A
--
-- USART Control and Status Register B
UCSR0B : Unsigned_8;
for UCSR0B'Address use System'To_Address (16#C1#);
UCSR0B_RXCIE0 : constant := 16#80#; -- RX Complete Interrupt Enable
UCSR0B_TXCIE0 : constant := 16#40#; -- TX Complete Interrupt Enable
UCSR0B_UDRIE0 : constant := 16#20#; -- USART Data register Empty Interrupt Enable
UCSR0B_RXEN0 : constant := 16#10#; -- Receiver Enable
UCSR0B_TXEN0 : constant := 16#08#; -- Transmitter Enable
UCSR0B_UCSZ02 : constant := 16#04#; -- Character Size
UCSR0B_RXB80 : constant := 16#02#; -- Receive Data Bit 8
UCSR0B_TXB80 : constant := 16#01#; -- Transmit Data Bit 8
--
-- UCSR0B
--
-- USART Control and Status Register C
UCSR0C : Unsigned_8;
for UCSR0C'Address use System'To_Address (16#C2#);
UCSR0C_UMSEL0 : constant := 16#C0#; -- USART Mode Select
UCSR0C_UPM0 : constant := 16#30#; -- Parity Mode Bits
UCSR0C_USBS0 : constant := 16#08#; -- Stop Bit Select
UCSR0C_UCSZ0 : constant := 16#06#; -- Character Size
UCSR0C_UCPOL0 : constant := 16#01#; -- Clock Polarity
--
-- UCSR0C
--
-- USART Baud Rate Register Bytes
UBRR0 : Unsigned_8;
for UBRR0'Address use System'To_Address (16#C4#);
--
-- TWI
--
-- TWI (Slave) Address Mask Register
TWAMR : Unsigned_8;
for TWAMR'Address use System'To_Address (16#BD#);
TWAMR_TWAM : constant := 16#FE#; --
--
-- TWAMR
--
-- TWI Bit Rate register
TWBR : Unsigned_8;
for TWBR'Address use System'To_Address (16#B8#);
--
-- TWBR
--
-- TWI Control Register
TWCR : Unsigned_8;
for TWCR'Address use System'To_Address (16#BC#);
TWCR_TWINT : constant := 16#80#; -- TWI Interrupt Flag
TWCR_TWEA : constant := 16#40#; -- TWI Enable Acknowledge Bit
TWCR_TWSTA : constant := 16#20#; -- TWI Start Condition Bit
TWCR_TWSTO : constant := 16#10#; -- TWI Stop Condition Bit
TWCR_TWWC : constant := 16#08#; -- TWI Write Collition Flag
TWCR_TWEN : constant := 16#04#; -- TWI Enable Bit
TWCR_TWIE : constant := 16#01#; -- TWI Interrupt Enable
--
-- TWCR
--
-- TWI Status Register
TWSR : Unsigned_8;
for TWSR'Address use System'To_Address (16#B9#);
TWSR_TWS : constant := 16#F8#; -- TWI Status
TWSR_TWPS : constant := 16#03#; -- TWI Prescaler
--
-- TWSR
--
-- TWI Data register
TWDR : Unsigned_8;
for TWDR'Address use System'To_Address (16#BB#);
--
-- TWDR
--
-- TWI (Slave) Address register
TWAR : Unsigned_8;
for TWAR'Address use System'To_Address (16#BA#);
TWAR_TWA : constant := 16#FE#; -- TWI (Slave) Address register Bits
TWAR_TWGCE : constant := 16#01#; -- TWI General Call Recognition Enable Bit
--
-- SPI
--
-- SPI Control Register
SPCR : Unsigned_8;
for SPCR'Address use System'To_Address (16#4C#);
SPCR_SPIE : constant := 16#80#; -- SPI Interrupt Enable
SPCR_SPE : constant := 16#40#; -- SPI Enable
SPCR_DORD : constant := 16#20#; -- Data Order
SPCR_MSTR : constant := 16#10#; -- Master/Slave Select
SPCR_CPOL : constant := 16#08#; -- Clock polarity
SPCR_CPHA : constant := 16#04#; -- Clock Phase
SPCR_SPR : constant := 16#03#; -- SPI Clock Rate Selects
--
-- SPCR
--
-- SPI Status Register
SPSR : Unsigned_8;
for SPSR'Address use System'To_Address (16#4D#);
SPSR_SPIF : constant := 16#80#; -- SPI Interrupt Flag
SPSR_WCOL : constant := 16#40#; -- Write Collision Flag
SPSR_SPI2X : constant := 16#01#; -- Double SPI Speed Bit
--
-- SPSR
--
-- SPI Data Register
SPDR : Unsigned_8;
for SPDR'Address use System'To_Address (16#4E#);
--
-- PORTA
--
-- Port A Data Register
PORTA : Unsigned_8;
for PORTA'Address use System'To_Address (16#22#);
--
-- PORTA
--
-- Port A Data Direction Register
DDRA : Unsigned_8;
for DDRA'Address use System'To_Address (16#21#);
--
-- DDRA
--
-- Port A Input Pins
PINA : Unsigned_8;
for PINA'Address use System'To_Address (16#20#);
--
-- PORTB
--
-- Port B Data Register
PORTB : Unsigned_8;
for PORTB'Address use System'To_Address (16#25#);
--
-- PORTB
--
-- Port B Data Direction Register
DDRB : Unsigned_8;
for DDRB'Address use System'To_Address (16#24#);
--
-- DDRB
--
-- Port B Input Pins
PINB : Unsigned_8;
for PINB'Address use System'To_Address (16#23#);
--
-- PORTC
--
-- Port C Data Register
PORTC : Unsigned_8;
for PORTC'Address use System'To_Address (16#28#);
--
-- PORTC
--
-- Port C Data Direction Register
DDRC : Unsigned_8;
for DDRC'Address use System'To_Address (16#27#);
--
-- DDRC
--
-- Port C Input Pins
PINC : Unsigned_8;
for PINC'Address use System'To_Address (16#26#);
--
-- PORTD
--
-- Port D Data Register
PORTD : Unsigned_8;
for PORTD'Address use System'To_Address (16#2B#);
--
-- PORTD
--
-- Port D Data Direction Register
DDRD : Unsigned_8;
for DDRD'Address use System'To_Address (16#2A#);
--
-- DDRD
--
-- Port D Input Pins
PIND : Unsigned_8;
for PIND'Address use System'To_Address (16#29#);
--
-- PORTE
--
-- Data Register, Port E
PORTE : Unsigned_8;
for PORTE'Address use System'To_Address (16#2E#);
--
-- PORTE
--
-- Data Direction Register, Port E
DDRE : Unsigned_8;
for DDRE'Address use System'To_Address (16#2D#);
--
-- DDRE
--
-- Input Pins, Port E
PINE : Unsigned_8;
for PINE'Address use System'To_Address (16#2C#);
--
-- PORTF
--
-- Data Register, Port F
PORTF : Unsigned_8;
for PORTF'Address use System'To_Address (16#31#);
--
-- PORTF
--
-- Data Direction Register, Port F
DDRF : Unsigned_8;
for DDRF'Address use System'To_Address (16#30#);
--
-- DDRF
--
-- Input Pins, Port F
PINF : Unsigned_8;
for PINF'Address use System'To_Address (16#2F#);
--
-- PORTG
--
-- Data Register, Port G
PORTG : Unsigned_8;
for PORTG'Address use System'To_Address (16#34#);
--
-- PORTG
--
-- Data Direction Register, Port G
DDRG : Unsigned_8;
for DDRG'Address use System'To_Address (16#33#);
--
-- DDRG
--
-- Input Pins, Port G
PING : Unsigned_8;
for PING'Address use System'To_Address (16#32#);
--
-- PORTH
--
-- PORT H Data Register
PORTH : Unsigned_8;
for PORTH'Address use System'To_Address (16#02#);
--
-- PORTH
--
-- PORT H Data Direction Register
DDRH : Unsigned_8;
for DDRH'Address use System'To_Address (16#01#);
--
-- DDRH
--
-- PORT H Input Pins
PINH : Unsigned_8;
for PINH'Address use System'To_Address (16#00#);
--
-- PORTJ
--
-- PORT J Data Register
PORTJ : Unsigned_8;
for PORTJ'Address use System'To_Address (16#05#);
--
-- PORTJ
--
-- PORT J Data Direction Register
DDRJ : Unsigned_8;
for DDRJ'Address use System'To_Address (16#04#);
--
-- DDRJ
--
-- PORT J Input Pins
PINJ : Unsigned_8;
for PINJ'Address use System'To_Address (16#03#);
--
-- PORTK
--
-- PORT K Data Register
PORTK : Unsigned_8;
for PORTK'Address use System'To_Address (16#08#);
--
-- PORTK
--
-- PORT K Data Direction Register
DDRK : Unsigned_8;
for DDRK'Address use System'To_Address (16#07#);
--
-- DDRK
--
-- PORT K Input Pins
PINK : Unsigned_8;
for PINK'Address use System'To_Address (16#06#);
--
-- PORTL
--
-- PORT L Data Register
PORTL : Unsigned_8;
for PORTL'Address use System'To_Address (16#0B#);
--
-- PORTL
--
-- PORT L Data Direction Register
DDRL : Unsigned_8;
for DDRL'Address use System'To_Address (16#0A#);
--
-- DDRL
--
-- PORT L Input Pins
PINL : Unsigned_8;
for PINL'Address use System'To_Address (16#09#);
--
-- TIMER_COUNTER_0
--
-- Timer/Counter0 Output Compare Register
OCR0B : Unsigned_8;
for OCR0B'Address use System'To_Address (16#48#);
--
-- OCR0B
--
-- Timer/Counter0 Output Compare Register
OCR0A : Unsigned_8;
for OCR0A'Address use System'To_Address (16#47#);
--
-- OCR0A
--
-- Timer/Counter0
TCNT0 : Unsigned_8;
for TCNT0'Address use System'To_Address (16#46#);
--
-- TCNT0
--
-- Timer/Counter Control Register B
TCCR0B : Unsigned_8;
for TCCR0B'Address use System'To_Address (16#45#);
TCCR0B_FOC0A : constant := 16#80#; -- Force Output Compare A
TCCR0B_FOC0B : constant := 16#40#; -- Force Output Compare B
TCCR0B_WGM02 : constant := 16#08#; --
TCCR0B_CS0 : constant := 16#07#; -- Clock Select
--
-- TCCR0B
--
-- Timer/Counter Control Register A
TCCR0A : Unsigned_8;
for TCCR0A'Address use System'To_Address (16#44#);
TCCR0A_COM0A : constant := 16#C0#; -- Compare Output Mode, Phase Correct PWM Mode
TCCR0A_COM0B : constant := 16#30#; -- Compare Output Mode, Fast PWm
TCCR0A_WGM0 : constant := 16#03#; -- Waveform Generation Mode
--
-- TCCR0A
--
-- Timer/Counter0 Interrupt Mask Register
TIMSK0 : Unsigned_8;
for TIMSK0'Address use System'To_Address (16#6E#);
TIMSK0_OCIE0B : constant := 16#04#; -- Timer/Counter0 Output Compare Match B Interrupt Enable
TIMSK0_OCIE0A : constant := 16#02#; -- Timer/Counter0 Output Compare Match A Interrupt Enable
TIMSK0_TOIE0 : constant := 16#01#; -- Timer/Counter0 Overflow Interrupt Enable
--
-- TIMSK0
--
-- Timer/Counter0 Interrupt Flag register
TIFR0 : Unsigned_8;
for TIFR0'Address use System'To_Address (16#35#);
TIFR0_OCF0B : constant := 16#04#; -- Timer/Counter0 Output Compare Flag 0B
TIFR0_OCF0A : constant := 16#02#; -- Timer/Counter0 Output Compare Flag 0A
TIFR0_TOV0 : constant := 16#01#; -- Timer/Counter0 Overflow Flag
--
-- TIFR0
--
-- General Timer/Counter Control Register
GTCCR : Unsigned_8;
for GTCCR'Address use System'To_Address (16#43#);
GTCCR_TSM : constant := 16#80#; -- Timer/Counter Synchronization Mode
GTCCR_PSRSYNC : constant := 16#01#; -- Prescaler Reset Timer/Counter1 and Timer/Counter0
--
-- TIMER_COUNTER_2
--
-- Timer/Counter Interrupt Mask register
TIMSK2 : Unsigned_8;
for TIMSK2'Address use System'To_Address (16#70#);
TIMSK2_OCIE2B : constant := 16#04#; -- Timer/Counter2 Output Compare Match B Interrupt Enable
TIMSK2_OCIE2A : constant := 16#02#; -- Timer/Counter2 Output Compare Match A Interrupt Enable
TIMSK2_TOIE2 : constant := 16#01#; -- Timer/Counter2 Overflow Interrupt Enable
--
-- TIMSK2
--
-- Timer/Counter Interrupt Flag Register
TIFR2 : Unsigned_8;
for TIFR2'Address use System'To_Address (16#37#);
TIFR2_OCF2B : constant := 16#04#; -- Output Compare Flag 2B
TIFR2_OCF2A : constant := 16#02#; -- Output Compare Flag 2A
TIFR2_TOV2 : constant := 16#01#; -- Timer/Counter2 Overflow Flag
--
-- TIFR2
--
-- Timer/Counter2 Control Register A
TCCR2A : Unsigned_8;
for TCCR2A'Address use System'To_Address (16#B0#);
TCCR2A_COM2A : constant := 16#C0#; -- Compare Output Mode bits
TCCR2A_COM2B : constant := 16#30#; -- Compare Output Mode bits
TCCR2A_WGM2 : constant := 16#03#; -- Waveform Genration Mode
--
-- TCCR2A
--
-- Timer/Counter2 Control Register B
TCCR2B : Unsigned_8;
for TCCR2B'Address use System'To_Address (16#B1#);
TCCR2B_FOC2A : constant := 16#80#; -- Force Output Compare A
TCCR2B_FOC2B : constant := 16#40#; -- Force Output Compare B
TCCR2B_WGM22 : constant := 16#08#; -- Waveform Generation Mode
TCCR2B_CS2 : constant := 16#07#; -- Clock Select bits
--
-- TCCR2B
--
-- Timer/Counter2
TCNT2 : Unsigned_8;
for TCNT2'Address use System'To_Address (16#B2#);
--
-- TCNT2
--
-- Timer/Counter2 Output Compare Register B
OCR2B : Unsigned_8;
for OCR2B'Address use System'To_Address (16#B4#);
--
-- OCR2B
--
-- Timer/Counter2 Output Compare Register A
OCR2A : Unsigned_8;
for OCR2A'Address use System'To_Address (16#B3#);
--
-- OCR2A
--
-- Asynchronous Status Register
ASSR : Unsigned_8;
for ASSR'Address use System'To_Address (16#B6#);
ASSR_EXCLK : constant := 16#40#; -- Enable External Clock Input
ASSR_AS2 : constant := 16#20#; -- Asynchronous Timer/Counter2
ASSR_TCN2UB : constant := 16#10#; -- Timer/Counter2 Update Busy
ASSR_OCR2AUB : constant := 16#08#; -- Output Compare Register2 Update Busy
ASSR_OCR2BUB : constant := 16#04#; -- Output Compare Register 2 Update Busy
ASSR_TCR2AUB : constant := 16#02#; -- Timer/Counter Control Register2 Update Busy
ASSR_TCR2BUB : constant := 16#01#; -- Timer/Counter Control Register2 Update Busy
--
-- ASSR
--
-- General Timer Counter Control register
GTCCR : Unsigned_8;
for GTCCR'Address use System'To_Address (16#43#);
GTCCR_TSM : constant := 16#80#; -- Timer/Counter Synchronization Mode
GTCCR_PSRASY : constant := 16#02#; -- Prescaler Reset Timer/Counter2
--
-- WATCHDOG
--
-- Watchdog Timer Control Register
WDTCSR : Unsigned_8;
for WDTCSR'Address use System'To_Address (16#60#);
WDTCSR_WDIF : constant := 16#80#; -- Watchdog Timeout Interrupt Flag
WDTCSR_WDIE : constant := 16#40#; -- Watchdog Timeout Interrupt Enable
WDTCSR_WDP : constant := 16#27#; -- Watchdog Timer Prescaler Bits
WDTCSR_WDCE : constant := 16#10#; -- Watchdog Change Enable
WDTCSR_WDE : constant := 16#08#; -- Watch Dog Enable
--
-- USART1
--
-- USART I/O Data Register
UDR1 : Unsigned_8;
for UDR1'Address use System'To_Address (16#CE#);
--
-- UDR1
--
-- USART Control and Status Register A
UCSR1A : Unsigned_8;
for UCSR1A'Address use System'To_Address (16#C8#);
UCSR1A_RXC1 : constant := 16#80#; -- USART Receive Complete
UCSR1A_TXC1 : constant := 16#40#; -- USART Transmitt Complete
UCSR1A_UDRE1 : constant := 16#20#; -- USART Data Register Empty
UCSR1A_FE1 : constant := 16#10#; -- Framing Error
UCSR1A_DOR1 : constant := 16#08#; -- Data overRun
UCSR1A_UPE1 : constant := 16#04#; -- Parity Error
UCSR1A_U2X1 : constant := 16#02#; -- Double the USART transmission speed
UCSR1A_MPCM1 : constant := 16#01#; -- Multi-processor Communication Mode
--
-- UCSR1A
--
-- USART Control and Status Register B
UCSR1B : Unsigned_8;
for UCSR1B'Address use System'To_Address (16#C9#);
UCSR1B_RXCIE1 : constant := 16#80#; -- RX Complete Interrupt Enable
UCSR1B_TXCIE1 : constant := 16#40#; -- TX Complete Interrupt Enable
UCSR1B_UDRIE1 : constant := 16#20#; -- USART Data register Empty Interrupt Enable
UCSR1B_RXEN1 : constant := 16#10#; -- Receiver Enable
UCSR1B_TXEN1 : constant := 16#08#; -- Transmitter Enable
UCSR1B_UCSZ12 : constant := 16#04#; -- Character Size
UCSR1B_RXB81 : constant := 16#02#; -- Receive Data Bit 8
UCSR1B_TXB81 : constant := 16#01#; -- Transmit Data Bit 8
--
-- UCSR1B
--
-- USART Control and Status Register C
UCSR1C : Unsigned_8;
for UCSR1C'Address use System'To_Address (16#CA#);
UCSR1C_UMSEL1 : constant := 16#C0#; -- USART Mode Select
UCSR1C_UPM1 : constant := 16#30#; -- Parity Mode Bits
UCSR1C_USBS1 : constant := 16#08#; -- Stop Bit Select
UCSR1C_UCSZ1 : constant := 16#06#; -- Character Size
UCSR1C_UCPOL1 : constant := 16#01#; -- Clock Polarity
--
-- UCSR1C
--
-- USART Baud Rate Register Bytes
UBRR1 : Unsigned_8;
for UBRR1'Address use System'To_Address (16#CC#);
--
-- EEPROM
--
-- EEPROM Address Register Low Bytes
EEAR : Unsigned_8;
for EEAR'Address use System'To_Address (16#41#);
--
-- EEAR
--
-- EEPROM Data Register
EEDR : Unsigned_8;
for EEDR'Address use System'To_Address (16#40#);
--
-- EEDR
--
-- EEPROM Control Register
EECR : Unsigned_8;
for EECR'Address use System'To_Address (16#3F#);
EECR_EEPM : constant := 16#30#; -- EEPROM Programming Mode Bits
EECR_EERIE : constant := 16#08#; -- EEPROM Ready Interrupt Enable
EECR_EEMPE : constant := 16#04#; -- EEPROM Master Write Enable
EECR_EEPE : constant := 16#02#; -- EEPROM Write Enable
EECR_EERE : constant := 16#01#; -- EEPROM Read Enable
--
-- TIMER_COUNTER_5
--
-- Timer/Counter5 Control Register A
TCCR5A : Unsigned_8;
for TCCR5A'Address use System'To_Address (16#20#);
TCCR5A_COM5A : constant := 16#C0#; -- Compare Output Mode 1A, bits
TCCR5A_COM5B : constant := 16#30#; -- Compare Output Mode 5B, bits
TCCR5A_COM5C : constant := 16#0C#; -- Compare Output Mode 5C, bits
TCCR5A_WGM5 : constant := 16#03#; -- Waveform Generation Mode
--
-- TCCR5A
--
-- Timer/Counter5 Control Register B
TCCR5B : Unsigned_8;
for TCCR5B'Address use System'To_Address (16#21#);
TCCR5B_ICNC5 : constant := 16#80#; -- Input Capture 5 Noise Canceler
TCCR5B_ICES5 : constant := 16#40#; -- Input Capture 5 Edge Select
TCCR5B_WGM5 : constant := 16#18#; -- Waveform Generation Mode
TCCR5B_CS5 : constant := 16#07#; -- Prescaler source of Timer/Counter 5
--
-- TCCR5B
--
-- Timer/Counter 5 Control Register C
TCCR5C : Unsigned_8;
for TCCR5C'Address use System'To_Address (16#22#);
TCCR5C_FOC5A : constant := 16#80#; -- Force Output Compare 5A
TCCR5C_FOC5B : constant := 16#40#; -- Force Output Compare 5B
TCCR5C_FOC5C : constant := 16#20#; -- Force Output Compare 5C
--
-- TCCR5C
--
-- Timer/Counter5 Bytes
TCNT5 : Unsigned_8;
for TCNT5'Address use System'To_Address (16#24#);
--
-- TCNT5
--
-- Timer/Counter5 Output Compare Register A Bytes
OCR5A : Unsigned_8;
for OCR5A'Address use System'To_Address (16#28#);
--
-- OCR5A
--
-- Timer/Counter5 Output Compare Register B Bytes
OCR5B : Unsigned_8;
for OCR5B'Address use System'To_Address (16#2A#);
--
-- OCR5B
--
-- Timer/Counter5 Output Compare Register B Bytes
OCR5C : Unsigned_8;
for OCR5C'Address use System'To_Address (16#2C#);
--
-- OCR5C
--
-- Timer/Counter5 Input Capture Register Bytes
ICR5 : Unsigned_8;
for ICR5'Address use System'To_Address (16#26#);
--
-- ICR5
--
-- Timer/Counter5 Interrupt Mask Register
TIMSK5 : Unsigned_8;
for TIMSK5'Address use System'To_Address (16#73#);
TIMSK5_ICIE5 : constant := 16#20#; -- Timer/Counter5 Input Capture Interrupt Enable
TIMSK5_OCIE5C : constant := 16#08#; -- Timer/Counter5 Output Compare C Match Interrupt Enable
TIMSK5_OCIE5B : constant := 16#04#; -- Timer/Counter5 Output Compare B Match Interrupt Enable
TIMSK5_OCIE5A : constant := 16#02#; -- Timer/Counter5 Output Compare A Match Interrupt Enable
TIMSK5_TOIE5 : constant := 16#01#; -- Timer/Counter5 Overflow Interrupt Enable
--
-- TIMSK5
--
-- Timer/Counter5 Interrupt Flag register
TIFR5 : Unsigned_8;
for TIFR5'Address use System'To_Address (16#3A#);
TIFR5_ICF5 : constant := 16#20#; -- Input Capture Flag 5
TIFR5_OCF5C : constant := 16#08#; -- Output Compare Flag 5C
TIFR5_OCF5B : constant := 16#04#; -- Output Compare Flag 5B
TIFR5_OCF5A : constant := 16#02#; -- Output Compare Flag 5A
TIFR5_TOV5 : constant := 16#01#; -- Timer/Counter5 Overflow Flag
--
-- TIMER_COUNTER_4
--
-- Timer/Counter4 Control Register A
TCCR4A : Unsigned_8;
for TCCR4A'Address use System'To_Address (16#A0#);
TCCR4A_COM4A : constant := 16#C0#; -- Compare Output Mode 1A, bits
TCCR4A_COM4B : constant := 16#30#; -- Compare Output Mode 4B, bits
TCCR4A_COM4C : constant := 16#0C#; -- Compare Output Mode 4C, bits
TCCR4A_WGM4 : constant := 16#03#; -- Waveform Generation Mode
--
-- TCCR4A
--
-- Timer/Counter4 Control Register B
TCCR4B : Unsigned_8;
for TCCR4B'Address use System'To_Address (16#A1#);
TCCR4B_ICNC4 : constant := 16#80#; -- Input Capture 4 Noise Canceler
TCCR4B_ICES4 : constant := 16#40#; -- Input Capture 4 Edge Select
TCCR4B_WGM4 : constant := 16#18#; -- Waveform Generation Mode
TCCR4B_CS4 : constant := 16#07#; -- Prescaler source of Timer/Counter 4
--
-- TCCR4B
--
-- Timer/Counter 4 Control Register C
TCCR4C : Unsigned_8;
for TCCR4C'Address use System'To_Address (16#A2#);
TCCR4C_FOC4A : constant := 16#80#; -- Force Output Compare 4A
TCCR4C_FOC4B : constant := 16#40#; -- Force Output Compare 4B
TCCR4C_FOC4C : constant := 16#20#; -- Force Output Compare 4C
--
-- TCCR4C
--
-- Timer/Counter4 Bytes
TCNT4 : Unsigned_8;
for TCNT4'Address use System'To_Address (16#A4#);
--
-- TCNT4
--
-- Timer/Counter4 Output Compare Register A Bytes
OCR4A : Unsigned_8;
for OCR4A'Address use System'To_Address (16#A8#);
--
-- OCR4A
--
-- Timer/Counter4 Output Compare Register B Bytes
OCR4B : Unsigned_8;
for OCR4B'Address use System'To_Address (16#AA#);
--
-- OCR4B
--
-- Timer/Counter4 Output Compare Register B Bytes
OCR4C : Unsigned_8;
for OCR4C'Address use System'To_Address (16#AC#);
--
-- OCR4C
--
-- Timer/Counter4 Input Capture Register Bytes
ICR4 : Unsigned_8;
for ICR4'Address use System'To_Address (16#A6#);
--
-- ICR4
--
-- Timer/Counter4 Interrupt Mask Register
TIMSK4 : Unsigned_8;
for TIMSK4'Address use System'To_Address (16#72#);
TIMSK4_ICIE4 : constant := 16#20#; -- Timer/Counter4 Input Capture Interrupt Enable
TIMSK4_OCIE4C : constant := 16#08#; -- Timer/Counter4 Output Compare C Match Interrupt Enable
TIMSK4_OCIE4B : constant := 16#04#; -- Timer/Counter4 Output Compare B Match Interrupt Enable
TIMSK4_OCIE4A : constant := 16#02#; -- Timer/Counter4 Output Compare A Match Interrupt Enable
TIMSK4_TOIE4 : constant := 16#01#; -- Timer/Counter4 Overflow Interrupt Enable
--
-- TIMSK4
--
-- Timer/Counter4 Interrupt Flag register
TIFR4 : Unsigned_8;
for TIFR4'Address use System'To_Address (16#39#);
TIFR4_ICF4 : constant := 16#20#; -- Input Capture Flag 4
TIFR4_OCF4C : constant := 16#08#; -- Output Compare Flag 4C
TIFR4_OCF4B : constant := 16#04#; -- Output Compare Flag 4B
TIFR4_OCF4A : constant := 16#02#; -- Output Compare Flag 4A
TIFR4_TOV4 : constant := 16#01#; -- Timer/Counter4 Overflow Flag
--
-- TIMER_COUNTER_3
--
-- Timer/Counter3 Control Register A
TCCR3A : Unsigned_8;
for TCCR3A'Address use System'To_Address (16#90#);
TCCR3A_COM3A : constant := 16#C0#; -- Compare Output Mode 1A, bits
TCCR3A_COM3B : constant := 16#30#; -- Compare Output Mode 3B, bits
TCCR3A_COM3C : constant := 16#0C#; -- Compare Output Mode 3C, bits
TCCR3A_WGM3 : constant := 16#03#; -- Waveform Generation Mode
--
-- TCCR3A
--
-- Timer/Counter3 Control Register B
TCCR3B : Unsigned_8;
for TCCR3B'Address use System'To_Address (16#91#);
TCCR3B_ICNC3 : constant := 16#80#; -- Input Capture 3 Noise Canceler
TCCR3B_ICES3 : constant := 16#40#; -- Input Capture 3 Edge Select
TCCR3B_WGM3 : constant := 16#18#; -- Waveform Generation Mode
TCCR3B_CS3 : constant := 16#07#; -- Prescaler source of Timer/Counter 3
--
-- TCCR3B
--
-- Timer/Counter 3 Control Register C
TCCR3C : Unsigned_8;
for TCCR3C'Address use System'To_Address (16#92#);
TCCR3C_FOC3A : constant := 16#80#; -- Force Output Compare 3A
TCCR3C_FOC3B : constant := 16#40#; -- Force Output Compare 3B
TCCR3C_FOC3C : constant := 16#20#; -- Force Output Compare 3C
--
-- TCCR3C
--
-- Timer/Counter3 Bytes
TCNT3 : Unsigned_8;
for TCNT3'Address use System'To_Address (16#94#);
--
-- TCNT3
--
-- Timer/Counter3 Output Compare Register A Bytes
OCR3A : Unsigned_8;
for OCR3A'Address use System'To_Address (16#98#);
--
-- OCR3A
--
-- Timer/Counter3 Output Compare Register B Bytes
OCR3B : Unsigned_8;
for OCR3B'Address use System'To_Address (16#9A#);
--
-- OCR3B
--
-- Timer/Counter3 Output Compare Register B Bytes
OCR3C : Unsigned_8;
for OCR3C'Address use System'To_Address (16#9C#);
--
-- OCR3C
--
-- Timer/Counter3 Input Capture Register Bytes
ICR3 : Unsigned_8;
for ICR3'Address use System'To_Address (16#96#);
--
-- ICR3
--
-- Timer/Counter3 Interrupt Mask Register
TIMSK3 : Unsigned_8;
for TIMSK3'Address use System'To_Address (16#71#);
TIMSK3_ICIE3 : constant := 16#20#; -- Timer/Counter3 Input Capture Interrupt Enable
TIMSK3_OCIE3C : constant := 16#08#; -- Timer/Counter3 Output Compare C Match Interrupt Enable
TIMSK3_OCIE3B : constant := 16#04#; -- Timer/Counter3 Output Compare B Match Interrupt Enable
TIMSK3_OCIE3A : constant := 16#02#; -- Timer/Counter3 Output Compare A Match Interrupt Enable
TIMSK3_TOIE3 : constant := 16#01#; -- Timer/Counter3 Overflow Interrupt Enable
--
-- TIMSK3
--
-- Timer/Counter3 Interrupt Flag register
TIFR3 : Unsigned_8;
for TIFR3'Address use System'To_Address (16#38#);
TIFR3_ICF3 : constant := 16#20#; -- Input Capture Flag 3
TIFR3_OCF3C : constant := 16#08#; -- Output Compare Flag 3C
TIFR3_OCF3B : constant := 16#04#; -- Output Compare Flag 3B
TIFR3_OCF3A : constant := 16#02#; -- Output Compare Flag 3A
TIFR3_TOV3 : constant := 16#01#; -- Timer/Counter3 Overflow Flag
--
-- TIMER_COUNTER_1
--
-- Timer/Counter1 Control Register A
TCCR1A : Unsigned_8;
for TCCR1A'Address use System'To_Address (16#80#);
TCCR1A_COM1A : constant := 16#C0#; -- Compare Output Mode 1A, bits
TCCR1A_COM1B : constant := 16#30#; -- Compare Output Mode 1B, bits
TCCR1A_COM1C : constant := 16#0C#; -- Compare Output Mode 1C, bits
TCCR1A_WGM1 : constant := 16#03#; -- Waveform Generation Mode
--
-- TCCR1A
--
-- Timer/Counter1 Control Register B
TCCR1B : Unsigned_8;
for TCCR1B'Address use System'To_Address (16#81#);
TCCR1B_ICNC1 : constant := 16#80#; -- Input Capture 1 Noise Canceler
TCCR1B_ICES1 : constant := 16#40#; -- Input Capture 1 Edge Select
TCCR1B_WGM1 : constant := 16#18#; -- Waveform Generation Mode
TCCR1B_CS1 : constant := 16#07#; -- Prescaler source of Timer/Counter 1
--
-- TCCR1B
--
-- Timer/Counter 1 Control Register C
TCCR1C : Unsigned_8;
for TCCR1C'Address use System'To_Address (16#82#);
TCCR1C_FOC1A : constant := 16#80#; -- Force Output Compare 1A
TCCR1C_FOC1B : constant := 16#40#; -- Force Output Compare 1B
TCCR1C_FOC1C : constant := 16#20#; -- Force Output Compare 1C
--
-- TCCR1C
--
-- Timer/Counter1 Bytes
TCNT1 : Unsigned_8;
for TCNT1'Address use System'To_Address (16#84#);
--
-- TCNT1
--
-- Timer/Counter1 Output Compare Register A Bytes
OCR1A : Unsigned_8;
for OCR1A'Address use System'To_Address (16#88#);
--
-- OCR1A
--
-- Timer/Counter1 Output Compare Register B Bytes
OCR1B : Unsigned_8;
for OCR1B'Address use System'To_Address (16#8A#);
--
-- OCR1B
--
-- Timer/Counter1 Output Compare Register C Bytes
OCR1C : Unsigned_8;
for OCR1C'Address use System'To_Address (16#8C#);
--
-- OCR1C
--
-- Timer/Counter1 Input Capture Register Bytes
ICR1 : Unsigned_8;
for ICR1'Address use System'To_Address (16#86#);
--
-- ICR1
--
-- Timer/Counter1 Interrupt Mask Register
TIMSK1 : Unsigned_8;
for TIMSK1'Address use System'To_Address (16#6F#);
TIMSK1_ICIE1 : constant := 16#20#; -- Timer/Counter1 Input Capture Interrupt Enable
TIMSK1_OCIE1C : constant := 16#08#; -- Timer/Counter1 Output Compare C Match Interrupt Enable
TIMSK1_OCIE1B : constant := 16#04#; -- Timer/Counter1 Output Compare B Match Interrupt Enable
TIMSK1_OCIE1A : constant := 16#02#; -- Timer/Counter1 Output Compare A Match Interrupt Enable
TIMSK1_TOIE1 : constant := 16#01#; -- Timer/Counter1 Overflow Interrupt Enable
--
-- TIMSK1
--
-- Timer/Counter1 Interrupt Flag register
TIFR1 : Unsigned_8;
for TIFR1'Address use System'To_Address (16#36#);
TIFR1_ICF1 : constant := 16#20#; -- Input Capture Flag 1
TIFR1_OCF1C : constant := 16#08#; -- Output Compare Flag 1C
TIFR1_OCF1B : constant := 16#04#; -- Output Compare Flag 1B
TIFR1_OCF1A : constant := 16#02#; -- Output Compare Flag 1A
TIFR1_TOV1 : constant := 16#01#; -- Timer/Counter1 Overflow Flag
--
-- JTAG
--
-- On-Chip Debug Related Register in I/O Memory
OCDR : Unsigned_8;
for OCDR'Address use System'To_Address (16#51#);
--
-- OCDR
--
-- MCU Control Register
MCUCR : Unsigned_8;
for MCUCR'Address use System'To_Address (16#55#);
MCUCR_JTD : constant := 16#80#; -- JTAG Interface Disable
--
-- MCUCR
--
-- MCU Status Register
MCUSR : Unsigned_8;
for MCUSR'Address use System'To_Address (16#54#);
MCUSR_JTRF : constant := 16#10#; -- JTAG Reset Flag
--
-- EXTERNAL_INTERRUPT
--
-- External Interrupt Control Register A
EICRA : Unsigned_8;
for EICRA'Address use System'To_Address (16#69#);
EICRA_ISC3 : constant := 16#C0#; -- External Interrupt Sense Control Bit
EICRA_ISC2 : constant := 16#30#; -- External Interrupt Sense Control Bit
EICRA_ISC1 : constant := 16#0C#; -- External Interrupt Sense Control Bit
EICRA_ISC0 : constant := 16#03#; -- External Interrupt Sense Control Bit
--
-- EICRA
--
-- External Interrupt Control Register B
EICRB : Unsigned_8;
for EICRB'Address use System'To_Address (16#6A#);
EICRB_ISC7 : constant := 16#C0#; -- External Interrupt 7-4 Sense Control Bit
EICRB_ISC6 : constant := 16#30#; -- External Interrupt 7-4 Sense Control Bit
EICRB_ISC5 : constant := 16#0C#; -- External Interrupt 7-4 Sense Control Bit
EICRB_ISC4 : constant := 16#03#; -- External Interrupt 7-4 Sense Control Bit
--
-- EICRB
--
-- External Interrupt Mask Register
EIMSK : Unsigned_8;
for EIMSK'Address use System'To_Address (16#3D#);
EIMSK_INT : constant := 16#FF#; -- External Interrupt Request 7 Enable
--
-- EIMSK
--
-- External Interrupt Flag Register
EIFR : Unsigned_8;
for EIFR'Address use System'To_Address (16#3C#);
EIFR_INTF : constant := 16#FF#; -- External Interrupt Flags
--
-- EIFR
--
-- Pin Change Mask Register 2
PCMSK2 : Unsigned_8;
for PCMSK2'Address use System'To_Address (16#6D#);
--
-- PCMSK2
--
-- Pin Change Mask Register 1
PCMSK1 : Unsigned_8;
for PCMSK1'Address use System'To_Address (16#6C#);
--
-- PCMSK1
--
-- Pin Change Mask Register 0
PCMSK0 : Unsigned_8;
for PCMSK0'Address use System'To_Address (16#6B#);
--
-- PCMSK0
--
-- Pin Change Interrupt Flag Register
PCIFR : Unsigned_8;
for PCIFR'Address use System'To_Address (16#3B#);
PCIFR_PCIF : constant := 16#07#; -- Pin Change Interrupt Flags
--
-- PCIFR
--
-- Pin Change Interrupt Control Register
PCICR : Unsigned_8;
for PCICR'Address use System'To_Address (16#68#);
PCICR_PCIE : constant := 16#07#; -- Pin Change Interrupt Enables
--
-- CPU
--
-- Status Register
SREG : Unsigned_8;
for SREG'Address use System'To_Address (16#5F#);
SREG_I : constant := 16#80#; -- Global Interrupt Enable
SREG_T : constant := 16#40#; -- Bit Copy Storage
SREG_H : constant := 16#20#; -- Half Carry Flag
SREG_S : constant := 16#10#; -- Sign Bit
SREG_V : constant := 16#08#; -- Two's Complement Overflow Flag
SREG_N : constant := 16#04#; -- Negative Flag
SREG_Z : constant := 16#02#; -- Zero Flag
SREG_C : constant := 16#01#; -- Carry Flag
--
-- SREG
--
-- Stack Pointer
SP : Unsigned_8;
for SP'Address use System'To_Address (16#5D#);
--
-- SP
--
-- MCU Control Register
MCUCR : Unsigned_8;
for MCUCR'Address use System'To_Address (16#55#);
MCUCR_JTD : constant := 16#80#; -- JTAG Interface Disable
MCUCR_PUD : constant := 16#10#; -- Pull-up disable
MCUCR_IVSEL : constant := 16#02#; -- Interrupt Vector Select
MCUCR_IVCE : constant := 16#01#; -- Interrupt Vector Change Enable
--
-- MCUCR
--
-- MCU Status Register
MCUSR : Unsigned_8;
for MCUSR'Address use System'To_Address (16#54#);
MCUSR_JTRF : constant := 16#10#; -- JTAG Reset Flag
MCUSR_WDRF : constant := 16#08#; -- Watchdog Reset Flag
MCUSR_BORF : constant := 16#04#; -- Brown-out Reset Flag
MCUSR_EXTRF : constant := 16#02#; -- External Reset Flag
MCUSR_PORF : constant := 16#01#; -- Power-on reset flag
--
-- MCUSR
--
-- External Memory Control Register A
XMCRA : Unsigned_8;
for XMCRA'Address use System'To_Address (16#74#);
XMCRA_SRE : constant := 16#80#; -- External SRAM Enable
XMCRA_SRL : constant := 16#70#; -- Wait state page limit
XMCRA_SRW1 : constant := 16#0C#; -- Wait state select bit upper page
XMCRA_SRW0 : constant := 16#03#; -- Wait state select bit lower page
--
-- XMCRA
--
-- External Memory Control Register B
XMCRB : Unsigned_8;
for XMCRB'Address use System'To_Address (16#75#);
XMCRB_XMBK : constant := 16#80#; -- External Memory Bus Keeper Enable
XMCRB_XMM : constant := 16#07#; -- External Memory High Mask
--
-- XMCRB
--
-- Oscillator Calibration Value
OSCCAL : Unsigned_8;
for OSCCAL'Address use System'To_Address (16#66#);
--
-- OSCCAL
--
-- Sleep Mode Control Register
SMCR : Unsigned_8;
for SMCR'Address use System'To_Address (16#53#);
SMCR_SM : constant := 16#0E#; -- Sleep Mode Select bits
SMCR_SE : constant := 16#01#; -- Sleep Enable
--
-- SMCR
--
-- Extended Indirect Register
EIND : Unsigned_8;
for EIND'Address use System'To_Address (16#5C#);
--
-- EIND
--
-- RAM Page Z Select Register
RAMPZ : Unsigned_8;
for RAMPZ'Address use System'To_Address (16#5B#);
--
-- RAMPZ
--
-- General Purpose IO Register 2
GPIOR2 : Unsigned_8;
for GPIOR2'Address use System'To_Address (16#4B#);
GPIOR2_GPIOR : constant := 16#FF#; -- General Purpose IO Register 2 bis
--
-- GPIOR2
--
-- General Purpose IO Register 1
GPIOR1 : Unsigned_8;
for GPIOR1'Address use System'To_Address (16#4A#);
GPIOR1_GPIOR : constant := 16#FF#; -- General Purpose IO Register 1 bis
--
-- GPIOR1
--
-- General Purpose IO Register 0
GPIOR0 : Unsigned_8;
for GPIOR0'Address use System'To_Address (16#3E#);
GPIOR0_GPIOR07 : constant := 16#80#; -- General Purpose IO Register 0 bit 7
GPIOR0_GPIOR06 : constant := 16#40#; -- General Purpose IO Register 0 bit 6
GPIOR0_GPIOR05 : constant := 16#20#; -- General Purpose IO Register 0 bit 5
GPIOR0_GPIOR04 : constant := 16#10#; -- General Purpose IO Register 0 bit 4
GPIOR0_GPIOR03 : constant := 16#08#; -- General Purpose IO Register 0 bit 3
GPIOR0_GPIOR02 : constant := 16#04#; -- General Purpose IO Register 0 bit 2
GPIOR0_GPIOR01 : constant := 16#02#; -- General Purpose IO Register 0 bit 1
GPIOR0_GPIOR00 : constant := 16#01#; -- General Purpose IO Register 0 bit 0
--
-- GPIOR0
--
-- Power Reduction Register1
PRR1 : Unsigned_8;
for PRR1'Address use System'To_Address (16#65#);
PRR1_PRTIM5 : constant := 16#20#; -- Power Reduction Timer/Counter5
PRR1_PRTIM4 : constant := 16#10#; -- Power Reduction Timer/Counter4
PRR1_PRTIM3 : constant := 16#08#; -- Power Reduction Timer/Counter3
PRR1_PRUSART : constant := 16#07#; -- Power Reduction USART3
--
-- PRR1
--
-- Power Reduction Register0
PRR0 : Unsigned_8;
for PRR0'Address use System'To_Address (16#64#);
PRR0_PRTWI : constant := 16#80#; -- Power Reduction TWI
PRR0_PRTIM2 : constant := 16#40#; -- Power Reduction Timer/Counter2
PRR0_PRTIM0 : constant := 16#20#; -- Power Reduction Timer/Counter0
PRR0_PRTIM1 : constant := 16#08#; -- Power Reduction Timer/Counter1
PRR0_PRSPI : constant := 16#04#; -- Power Reduction Serial Peripheral Interface
PRR0_PRUSART0 : constant := 16#02#; -- Power Reduction USART
PRR0_PRADC : constant := 16#01#; -- Power Reduction ADC
--
-- AD_CONVERTER
--
-- The ADC multiplexer Selection Register
ADMUX : Unsigned_8;
for ADMUX'Address use System'To_Address (16#7C#);
ADMUX_REFS : constant := 16#C0#; -- Reference Selection Bits
ADMUX_ADLAR : constant := 16#20#; -- Left Adjust Result
ADMUX_MUX : constant := 16#1F#; -- Analog Channel and Gain Selection Bits
--
-- ADMUX
--
-- ADC Data Register Bytes
ADC : Unsigned_8;
for ADC'Address use System'To_Address (16#78#);
--
-- ADC
--
-- The ADC Control and Status register A
ADCSRA : Unsigned_8;
for ADCSRA'Address use System'To_Address (16#7A#);
ADCSRA_ADEN : constant := 16#80#; -- ADC Enable
ADCSRA_ADSC : constant := 16#40#; -- ADC Start Conversion
ADCSRA_ADATE : constant := 16#20#; -- ADC Auto Trigger Enable
ADCSRA_ADIF : constant := 16#10#; -- ADC Interrupt Flag
ADCSRA_ADIE : constant := 16#08#; -- ADC Interrupt Enable
ADCSRA_ADPS : constant := 16#07#; -- ADC Prescaler Select Bits
--
-- ADCSRA
--
-- The ADC Control and Status register B
ADCSRB : Unsigned_8;
for ADCSRB'Address use System'To_Address (16#7B#);
ADCSRB_ACME : constant := 16#40#; --
ADCSRB_MUX5 : constant := 16#08#; -- Analog Channel and Gain Selection Bits
ADCSRB_ADTS : constant := 16#07#; -- ADC Auto Trigger Source bits
--
-- ADCSRB
--
-- Digital Input Disable Register
DIDR2 : Unsigned_8;
for DIDR2'Address use System'To_Address (16#7D#);
DIDR2_ADC15D : constant := 16#80#; --
DIDR2_ADC14D : constant := 16#40#; --
DIDR2_ADC13D : constant := 16#20#; --
DIDR2_ADC12D : constant := 16#10#; --
DIDR2_ADC11D : constant := 16#08#; --
DIDR2_ADC10D : constant := 16#04#; --
DIDR2_ADC9D : constant := 16#02#; --
DIDR2_ADC8D : constant := 16#01#; --
--
-- DIDR2
--
-- Digital Input Disable Register
DIDR0 : Unsigned_8;
for DIDR0'Address use System'To_Address (16#7E#);
DIDR0_ADC7D : constant := 16#80#; --
DIDR0_ADC6D : constant := 16#40#; --
DIDR0_ADC5D : constant := 16#20#; --
DIDR0_ADC4D : constant := 16#10#; --
DIDR0_ADC3D : constant := 16#08#; --
DIDR0_ADC2D : constant := 16#04#; --
DIDR0_ADC1D : constant := 16#02#; --
DIDR0_ADC0D : constant := 16#01#; --
--
-- BOOT_LOAD
--
-- Store Program Memory Control Register
SPMCSR : Unsigned_8;
for SPMCSR'Address use System'To_Address (16#57#);
SPMCSR_SPMIE : constant := 16#80#; -- SPM Interrupt Enable
SPMCSR_RWWSB : constant := 16#40#; -- Read While Write Section Busy
SPMCSR_SIGRD : constant := 16#20#; -- Signature Row Read
SPMCSR_RWWSRE : constant := 16#10#; -- Read While Write section read enable
SPMCSR_BLBSET : constant := 16#08#; -- Boot Lock Bit Set
SPMCSR_PGWRT : constant := 16#04#; -- Page Write
SPMCSR_PGERS : constant := 16#02#; -- Page Erase
SPMCSR_SPMEN : constant := 16#01#; -- Store Program Memory Enable
--
-- USART2
--
-- USART I/O Data Register
UDR2 : Unsigned_8;
for UDR2'Address use System'To_Address (16#D6#);
--
-- UDR2
--
-- USART Control and Status Register A
UCSR2A : Unsigned_8;
for UCSR2A'Address use System'To_Address (16#D0#);
UCSR2A_RXC2 : constant := 16#80#; -- USART Receive Complete
UCSR2A_TXC2 : constant := 16#40#; -- USART Transmitt Complete
UCSR2A_UDRE2 : constant := 16#20#; -- USART Data Register Empty
UCSR2A_FE2 : constant := 16#10#; -- Framing Error
UCSR2A_DOR2 : constant := 16#08#; -- Data overRun
UCSR2A_UPE2 : constant := 16#04#; -- Parity Error
UCSR2A_U2X2 : constant := 16#02#; -- Double the USART transmission speed
UCSR2A_MPCM2 : constant := 16#01#; -- Multi-processor Communication Mode
--
-- UCSR2A
--
-- USART Control and Status Register B
UCSR2B : Unsigned_8;
for UCSR2B'Address use System'To_Address (16#D1#);
UCSR2B_RXCIE2 : constant := 16#80#; -- RX Complete Interrupt Enable
UCSR2B_TXCIE2 : constant := 16#40#; -- TX Complete Interrupt Enable
UCSR2B_UDRIE2 : constant := 16#20#; -- USART Data register Empty Interrupt Enable
UCSR2B_RXEN2 : constant := 16#10#; -- Receiver Enable
UCSR2B_TXEN2 : constant := 16#08#; -- Transmitter Enable
UCSR2B_UCSZ22 : constant := 16#04#; -- Character Size
UCSR2B_RXB82 : constant := 16#02#; -- Receive Data Bit 8
UCSR2B_TXB82 : constant := 16#01#; -- Transmit Data Bit 8
--
-- UCSR2B
--
-- USART Control and Status Register C
UCSR2C : Unsigned_8;
for UCSR2C'Address use System'To_Address (16#D2#);
UCSR2C_UMSEL2 : constant := 16#C0#; -- USART Mode Select
UCSR2C_UPM2 : constant := 16#30#; -- Parity Mode Bits
UCSR2C_USBS2 : constant := 16#08#; -- Stop Bit Select
UCSR2C_UCSZ2 : constant := 16#06#; -- Character Size
UCSR2C_UCPOL2 : constant := 16#01#; -- Clock Polarity
--
-- UCSR2C
--
-- USART Baud Rate Register Bytes
UBRR2 : Unsigned_8;
for UBRR2'Address use System'To_Address (16#D4#);
--
-- USART3
--
-- USART I/O Data Register
UDR3 : Unsigned_8;
for UDR3'Address use System'To_Address (16#36#);
--
-- UDR3
--
-- USART Control and Status Register A
UCSR3A : Unsigned_8;
for UCSR3A'Address use System'To_Address (16#30#);
UCSR3A_RXC3 : constant := 16#80#; -- USART Receive Complete
UCSR3A_TXC3 : constant := 16#40#; -- USART Transmitt Complete
UCSR3A_UDRE3 : constant := 16#20#; -- USART Data Register Empty
UCSR3A_FE3 : constant := 16#10#; -- Framing Error
UCSR3A_DOR3 : constant := 16#08#; -- Data overRun
UCSR3A_UPE3 : constant := 16#04#; -- Parity Error
UCSR3A_U2X3 : constant := 16#02#; -- Double the USART transmission speed
UCSR3A_MPCM3 : constant := 16#01#; -- Multi-processor Communication Mode
--
-- UCSR3A
--
-- USART Control and Status Register B
UCSR3B : Unsigned_8;
for UCSR3B'Address use System'To_Address (16#31#);
UCSR3B_RXCIE3 : constant := 16#80#; -- RX Complete Interrupt Enable
UCSR3B_TXCIE3 : constant := 16#40#; -- TX Complete Interrupt Enable
UCSR3B_UDRIE3 : constant := 16#20#; -- USART Data register Empty Interrupt Enable
UCSR3B_RXEN3 : constant := 16#10#; -- Receiver Enable
UCSR3B_TXEN3 : constant := 16#08#; -- Transmitter Enable
UCSR3B_UCSZ32 : constant := 16#04#; -- Character Size
UCSR3B_RXB83 : constant := 16#02#; -- Receive Data Bit 8
UCSR3B_TXB83 : constant := 16#01#; -- Transmit Data Bit 8
--
-- UCSR3B
--
-- USART Control and Status Register C
UCSR3C : Unsigned_8;
for UCSR3C'Address use System'To_Address (16#32#);
UCSR3C_UMSEL3 : constant := 16#C0#; -- USART Mode Select
UCSR3C_UPM3 : constant := 16#30#; -- Parity Mode Bits
UCSR3C_USBS3 : constant := 16#08#; -- Stop Bit Select
UCSR3C_UCSZ3 : constant := 16#06#; -- Character Size
UCSR3C_UCPOL3 : constant := 16#01#; -- Clock Polarity
--
-- UCSR3C
--
-- USART Baud Rate Register Bytes
UBRR3 : Unsigned_8;
for UBRR3'Address use System'To_Address (16#34#);
end AVR.ATmega2560;