ATmega328p
Hardware definitions
Loading...
Searching...
No Matches
atmega328p::register_map Namespace Reference

Register addresses and memory-space boundaries. More...

Enumerations

enum  : uint16_t {
  register_file_start = 0x0000 , register_file_end = 0x001F , io_space_start = 0x0020 , io_space_end = 0x005F ,
  extended_io_start = 0x0060 , extended_io_end = 0x00FF , sram_start = 0x0100 , sram_end = 0x08FF ,
  io_offset = 0x20 , sbi_cbi_last_address = 0x003F , in_out_last_address = 0x005F , invalid_io_address = 0xFFFF
}
enum  Register : uint16_t {
  PINB = 0x23 , DDRB = 0x24 , PORTB = 0x25 , PINC = 0x26 ,
  DDRC = 0x27 , PORTC = 0x28 , PIND = 0x29 , DDRD = 0x2A ,
  PORTD = 0x2B , TIFR0 = 0x35 , TIFR1 = 0x36 , TIFR2 = 0x37 ,
  PCIFR = 0x3B , EIFR = 0x3C , EIMSK = 0x3D , GPIOR0 = 0x3E ,
  EECR = 0x3F , EEDR = 0x40 , EEARL = 0x41 , EEARH = 0x42 ,
  GTCCR = 0x43 , TCCR0A = 0x44 , TCCR0B = 0x45 , TCNT0 = 0x46 ,
  OCR0A = 0x47 , OCR0B = 0x48 , GPIOR1 = 0x4A , GPIOR2 = 0x4B ,
  SPCR = 0x4C , SPSR = 0x4D , SPDR = 0x4E , ACSR = 0x50 ,
  SMCR = 0x53 , MCUSR = 0x54 , MCUCR = 0x55 , SPMCSR = 0x57 ,
  SPL = 0x5D , SPH = 0x5E , SREG = 0x5F , WDTCSR = 0x60 ,
  CLKPR = 0x61 , PRR = 0x64 , OSCCAL = 0x66 , PCICR = 0x68 ,
  EICRA = 0x69 , PCMSK0 = 0x6B , PCMSK1 = 0x6C , PCMSK2 = 0x6D ,
  TIMSK0 = 0x6E , TIMSK1 = 0x6F , TIMSK2 = 0x70 , ADC = 0x78 ,
  ADCL = 0x78 , ADCH = 0x79 , ADCSRA = 0x7A , ADCSRB = 0x7B ,
  ADMUX = 0x7C , DIDR0 = 0x7E , DIDR1 = 0x7F , TCCR1A = 0x80 ,
  TCCR1B = 0x81 , TCCR1C = 0x82 , TCNT1L = 0x84 , TCNT1H = 0x85 ,
  ICR1L = 0x86 , ICR1H = 0x87 , OCR1AL = 0x88 , OCR1AH = 0x89 ,
  OCR1BL = 0x8A , OCR1BH = 0x8B , TCCR2A = 0xB0 , TCCR2B = 0xB1 ,
  TCNT2 = 0xB2 , OCR2A = 0xB3 , OCR2B = 0xB4 , ASSR = 0xB6 ,
  TWBR = 0xB8 , TWSR = 0xB9 , TWAR = 0xBA , TWDR = 0xBB ,
  TWCR = 0xBC , TWAMR = 0xBD , UCSR0A = 0xC0 , UCSR0B = 0xC1 ,
  UCSR0C = 0xC2 , UBRR0L = 0xC4 , UBRR0H = 0xC5 , UDR0 = 0xC6
}
 Data-space addresses of special-function registers. More...

Detailed Description

Register addresses and memory-space boundaries.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : uint16_t
Enumerator
register_file_start 

Register file start.

register_file_end 

Register file end.

io_space_start 

I/O space start.

io_space_end 

I/O space end.

extended_io_start 

Extended I/O start.

extended_io_end 

Extended I/O end.

sram_start 

SRAM start.

sram_end 

SRAM end.

io_offset 

I/O offset.

sbi_cbi_last_address 

Sbi cbi last address.

in_out_last_address 

In out last address.

invalid_io_address 

Invalid I/O address.

◆ Register

Data-space addresses of special-function registers.

Enumerator
PINB 

0x23 - Input pin states.

DDRB 

0x24 - Data direction.

PORTB 

0x25 - Output latch / pull-up.

PINC 

0x26 - Input pin states.

DDRC 

0x27 - Data direction.

PORTC 

0x28 - Output latch / pull-up.

PIND 

0x29 - Input pin states.

DDRD 

0x2A - Data direction.

PORTD 

0x2B - Output latch / pull-up.

TIFR0 

0x35 - Timer interrupt flags.

TIFR1 

0x36 - Timer interrupt flags.

TIFR2 

0x37 - Timer interrupt flags.

PCIFR 

0x3B - Pin-change interrupt flags.

EIFR 

0x3C - External interrupt flags.

EIMSK 

0x3D - External interrupt mask.

GPIOR0 

0x3E - General-purpose I/O register.

EECR 

0x3F - EEPROM control.

EEDR 

0x40 - EEPROM data.

EEARL 

0x41 - EEPROM address.

EEARH 

0x42 - EEPROM address.

GTCCR 

0x43 - General timer control.

TCCR0A 

0x44 - Timer control.

TCCR0B 

0x45 - Timer control.

TCNT0 

0x46 - Timer counter.

OCR0A 

0x47 - Output compare register.

OCR0B 

0x48 - Output compare register.

GPIOR1 

0x4A - General-purpose I/O register.

GPIOR2 

0x4B - General-purpose I/O register.

SPCR 

0x4C - SPI control.

SPSR 

0x4D - SPI status.

SPDR 

0x4E - SPI data.

ACSR 

0x50 - Analog comparator control/status.

SMCR 

0x53 - Sleep-mode control.

MCUSR 

0x54 - MCU status / reset flags.

MCUCR 

0x55 - MCU control.

SPMCSR 

0x57 - Flash self-programming control.

SPL 

0x5D - Stack pointer low byte.

SPH 

0x5E - Stack pointer high byte.

SREG 

0x5F - CPU status register.

WDTCSR 

0x60 - Watchdog control/status.

CLKPR 

0x61 - Clock prescaler.

PRR 

0x64 - Peripheral power-reduction.

OSCCAL 

0x66 - Internal oscillator calibration.

PCICR 

0x68 - Pin-change interrupt control.

EICRA 

0x69 - External interrupt control A.

PCMSK0 

0x6B - Pin-change interrupt mask.

PCMSK1 

0x6C - Pin-change interrupt mask.

PCMSK2 

0x6D - Pin-change interrupt mask.

TIMSK0 

0x6E - Timer interrupt mask.

TIMSK1 

0x6F - Timer interrupt mask.

TIMSK2 

0x70 - Timer interrupt mask.

ADC 

0x78 - ADC conversion result.

ADCL 

0x78 - ADC result low byte.

ADCH 

0x79 - ADC result high byte.

ADCSRA 

0x7A - ADC control/status A.

ADCSRB 

0x7B - ADC control/status B.

ADMUX 

0x7C - ADC multiplexer selection.

DIDR0 

0x7E - Digital-input disable.

DIDR1 

0x7F - Digital-input disable.

TCCR1A 

0x80 - Timer control.

TCCR1B 

0x81 - Timer control.

TCCR1C 

0x82 - Timer control.

TCNT1L 

0x84 - Timer counter.

TCNT1H 

0x85 - Timer counter.

ICR1L 

0x86 - Input capture register.

ICR1H 

0x87 - Input capture register.

OCR1AL 

0x88 - Output compare register.

OCR1AH 

0x89 - Output compare register.

OCR1BL 

0x8A - Output compare register.

OCR1BH 

0x8B - Output compare register.

TCCR2A 

0xB0 - Timer control.

TCCR2B 

0xB1 - Timer control.

TCNT2 

0xB2 - Timer counter.

OCR2A 

0xB3 - Output compare register.

OCR2B 

0xB4 - Output compare register.

ASSR 

0xB6 - Asynchronous timer status.

TWBR 

0xB8 - TWI bit-rate.

TWSR 

0xB9 - TWI status.

TWAR 

0xBA - TWI address.

TWDR 

0xBB - TWI data.

TWCR 

0xBC - TWI control.

TWAMR 

0xBD - TWI address mask.

UCSR0A 

0xC0 - USART control/status.

UCSR0B 

0xC1 - USART control/status.

UCSR0C 

0xC2 - USART control/status.

UBRR0L 

0xC4 - USART baud-rate.

UBRR0H 

0xC5 - USART baud-rate.

UDR0 

0xC6 - USART data.