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

Logical pin and alternate-function definitions. More...

Namespaces

namespace  capabilities
 Capability masks for individual logical pins.

Enumerations

enum class  Port : uint8_t { B = 0 , C = 1 , D = 2 }
 GPIO port identifiers. More...
enum class  Pin : uint8_t {
  PB0 = 0x00 , PB1 = 0x01 , PB2 = 0x02 , PB3 = 0x03 ,
  PB4 = 0x04 , PB5 = 0x05 , PB6 = 0x06 , PB7 = 0x07 ,
  PC0 = 0x10 , PC1 = 0x11 , PC2 = 0x12 , PC3 = 0x13 ,
  PC4 = 0x14 , PC5 = 0x15 , PC6 = 0x16 , PD0 = 0x20 ,
  PD1 = 0x21 , PD2 = 0x22 , PD3 = 0x23 , PD4 = 0x24 ,
  PD5 = 0x25 , PD6 = 0x26 , PD7 = 0x27
}
 Logical pin identifiers, independent of package terminals. More...
enum  : uint8_t {
  port_shift = 4 , port_mask = 0xF0 , bit_mask = 0x0F , port_b_code = 0 ,
  port_c_code = 1 , port_d_code = 2 , port_b_width = 8 , port_c_width = 7 ,
  port_d_width = 8 , port_b_mask = 0xFF , port_c_mask = 0x7F , port_d_mask = 0xFF ,
  pin_count = 23
}
enum  Capability : uint16_t {
  None = 0x0000U , GPIO = 0x0001U , PinChangeInterrupt = 0x0002U , ADC = 0x0004U ,
  PWM = 0x0008U , ExternalInterrupt = 0x0010U , SPI = 0x0020U , USART = 0x0040U ,
  TWI = 0x0080U , TimerExternalClock = 0x0100U , InputCapture = 0x0200U , ClockOutput = 0x0400U ,
  Reset = 0x0800U , AnalogComparator = 0x1000U , TimerOscillator = 0x2000U , MainClockOscillator = 0x4000U
}
 Bit flags describing a pin's available hardware functions. More...
enum class  Function : uint8_t {
  GPIO , PCINT0 , PCINT1 , PCINT2 ,
  PCINT3 , PCINT4 , PCINT5 , PCINT6 ,
  PCINT7 , PCINT8 , PCINT9 , PCINT10 ,
  PCINT11 , PCINT12 , PCINT13 , PCINT14 ,
  PCINT16 , PCINT17 , PCINT18 , PCINT19 ,
  PCINT20 , PCINT21 , PCINT22 , PCINT23 ,
  CLKO , ICP1 , OC1A , SS ,
  OC1B , MOSI , OC2A , MISO ,
  SCK , XTAL1 , TOSC1 , XTAL2 ,
  TOSC2 , ADC0 , ADC1 , ADC2 ,
  ADC3 , ADC4 , ADC5 , SDA ,
  SCL , RESET , RXD , TXD ,
  INT0 , INT1 , OC2B , XCK ,
  T0 , OC0B , T1 , OC0A ,
  AIN0 , AIN1
}
 Alternate pin function identifiers. More...

Detailed Description

Logical pin and alternate-function definitions.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : uint8_t
Enumerator
port_shift 

Port shift count.

port_mask 

Port mask.

bit_mask 

Bit mask.

port_b_code 

Port b code.

port_c_code 

Port c code.

port_d_code 

Port d code.

port_b_width 

Port b width.

port_c_width 

Port c width.

port_d_width 

Port d width.

port_b_mask 

Port b mask.

port_c_mask 

Port c mask.

port_d_mask 

Port d mask.

pin_count 

Number of pin.

◆ Capability

enum atmega328p::pin::Capability : uint16_t

Bit flags describing a pin's available hardware functions.

Enumerator
None 

0x0000 - No alternate functions.

GPIO 

0x0001 - Digital input/output.

PinChangeInterrupt 

0x0002 - Pin-change interrupt source.

ADC 

0x0004 - Analog-to-digital input.

PWM 

0x0008 - Timer output-compare PWM.

ExternalInterrupt 

0x0010 - Dedicated external interrupt input.

SPI 

0x0020 - SPI interface signal.

USART 

0x0040 - USART interface signal.

TWI 

0x0080 - Two-wire interface signal.

TimerExternalClock 

0x0100 - External clock input for timer.

InputCapture 

0x0200 - Timer1 input capture.

ClockOutput 

0x0400 - System clock output.

Reset 

0x0800 - External reset input.

AnalogComparator 

0x1000 - Analog comparator input.

TimerOscillator 

0x2000 - Timer2 oscillator connection.

MainClockOscillator 

0x4000 - Main oscillator connection.

◆ Function

enum class atmega328p::pin::Function : uint8_t
strong

Alternate pin function identifiers.

Enumerator
GPIO 

Digital input/output.

PCINT0 

Pin-change interrupt source 0.

PCINT1 

Pin-change interrupt source 1.

PCINT2 

Pin-change interrupt source 2.

PCINT3 

Pin-change interrupt source 3.

PCINT4 

Pin-change interrupt source 4.

PCINT5 

Pin-change interrupt source 5.

PCINT6 

Pin-change interrupt source 6.

PCINT7 

Pin-change interrupt source 7.

PCINT8 

Pin-change interrupt source 8.

PCINT9 

Pin-change interrupt source 9.

PCINT10 

Pin-change interrupt source 10.

PCINT11 

Pin-change interrupt source 11.

PCINT12 

Pin-change interrupt source 12.

PCINT13 

Pin-change interrupt source 13.

PCINT14 

Pin-change interrupt source 14.

PCINT16 

Pin-change interrupt source 16.

PCINT17 

Pin-change interrupt source 17.

PCINT18 

Pin-change interrupt source 18.

PCINT19 

Pin-change interrupt source 19.

PCINT20 

Pin-change interrupt source 20.

PCINT21 

Pin-change interrupt source 21.

PCINT22 

Pin-change interrupt source 22.

PCINT23 

Pin-change interrupt source 23.

CLKO 

System clock output.

ICP1 

Timer1 input capture.

OC1A 

Timer output-compare OC1A.

SS 

SPI slave select.

OC1B 

Timer output-compare OC1B.

MOSI 

SPI master-out/slave-in.

OC2A 

Timer output-compare OC2A.

MISO 

SPI master-in/slave-out.

SCK 

SPI serial clock.

XTAL1 

Main oscillator input.

TOSC1 

Timer2 oscillator input.

XTAL2 

Main oscillator output.

TOSC2 

Timer2 oscillator output.

ADC0 

ADC input 0.

ADC1 

ADC input 1.

ADC2 

ADC input 2.

ADC3 

ADC input 3.

ADC4 

ADC input 4.

ADC5 

ADC input 5.

SDA 

TWI serial data.

SCL 

TWI serial clock.

RESET 

External reset.

RXD 

USART receive.

TXD 

USART transmit.

INT0 

External interrupt 0.

INT1 

External interrupt 1.

OC2B 

Timer output-compare OC2B.

XCK 

USART external clock.

T0 

Timer0 external clock.

OC0B 

Timer output-compare OC0B.

T1 

Timer1 external clock.

OC0A 

Timer output-compare OC0A.

AIN0 

Analog comparator positive input.

AIN1 

Analog comparator negative input.

◆ Pin

enum class atmega328p::pin::Pin : uint8_t
strong

Logical pin identifiers, independent of package terminals.

Enumerator
PB0 

0x00 - Port B, bit 0.

PB1 

0x01 - Port B, bit 1.

PB2 

0x02 - Port B, bit 2.

PB3 

0x03 - Port B, bit 3.

PB4 

0x04 - Port B, bit 4.

PB5 

0x05 - Port B, bit 5.

PB6 

0x06 - Port B, bit 6.

PB7 

0x07 - Port B, bit 7.

PC0 

0x10 - Port C, bit 0.

PC1 

0x11 - Port C, bit 1.

PC2 

0x12 - Port C, bit 2.

PC3 

0x13 - Port C, bit 3.

PC4 

0x14 - Port C, bit 4.

PC5 

0x15 - Port C, bit 5.

PC6 

0x16 - Port C, bit 6. RESET by default.

PD0 

0x20 - Port D, bit 0.

PD1 

0x21 - Port D, bit 1.

PD2 

0x22 - Port D, bit 2.

PD3 

0x23 - Port D, bit 3.

PD4 

0x24 - Port D, bit 4.

PD5 

0x25 - Port D, bit 5.

PD6 

0x26 - Port D, bit 6.

PD7 

0x27 - Port D, bit 7.

◆ Port

enum class atmega328p::pin::Port : uint8_t
strong

GPIO port identifiers.

Enumerator
B 

0 - Port B.

C 

1 - Port C.

D 

2 - Port D.