FastArduino - ATmega328P Support v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
Namespaces | Enumerations | Functions
uno.h File Reference

ATmega328P specific features and pins. More...

#include "io.h"
#include "../defines.h"
#include <avr/sleep.h>
Include dependency graph for uno.h:

Go to the source code of this file.

Namespaces

namespace  board
 Defines all types and constants specific to support ATmega328P MCU target.
 

Enumerations

enum class  board::Port : uint8_t {
  board::PORT_B = 0 ,
  board::PORT_C ,
  board::PORT_D ,
  NONE = UINT8_MAX
}
 Defines all available ports of ATmega328P. More...
 
enum class  board::DigitalPin : uint8_t {
  board::D0_PD0 = 0 ,
  board::D0 = D0_PD0 ,
  board::D1_PD1 ,
  board::D1 = D1_PD1 ,
  board::D2_PD2 ,
  board::D2 = D2_PD2 ,
  board::D3_PD3 ,
  board::D3 = D3_PD3 ,
  board::D4_PD4 ,
  board::D4 = D4_PD4 ,
  board::D5_PD5 ,
  board::D5 = D5_PD5 ,
  board::D6_PD6 ,
  board::D6 = D6_PD6 ,
  board::D7_PD7 ,
  board::D7 = D7_PD7 ,
  board::D8_PB0 ,
  board::D8 = D8_PB0 ,
  board::D9_PB1 ,
  board::D9 = D9_PB1 ,
  board::D10_PB2 ,
  board::D10 = D10_PB2 ,
  board::D11_PB3 ,
  board::D11 = D11_PB3 ,
  board::D12_PB4 ,
  board::D12 = D12_PB4 ,
  board::D13_PB5 ,
  board::D13 = D13_PB5 ,
  board::D14_PC0 ,
  board::A0 = D14_PC0 ,
  board::A0_PC0 = D14_PC0 ,
  board::D15_PC1 ,
  board::A1 = D15_PC1 ,
  board::A1_PC1 = D15_PC1 ,
  board::D16_PC2 ,
  board::A2 = D16_PC2 ,
  board::A2_PC2 = D16_PC2 ,
  board::D17_PC3 ,
  board::A3 = D17_PC3 ,
  board::A3_PC3 = D17_PC3 ,
  board::D18_PC4 ,
  board::A4 = D18_PC4 ,
  board::A4_PC4 = D18_PC4 ,
  board::D19_PC5 ,
  board::A5 = D19_PC5 ,
  board::A5_PC5 = D19_PC5 ,
  board::LED = D13_PB5 ,
  board::LED_PB5 = D13_PB5 ,
  NONE = UINT8_MAX
}
 Defines all available digital input/output pins of ATmega328P, with reference to Arduino UNO pins. More...
 
enum class  board::AnalogClock : uint8_t {
  MAX_FREQ_50KHz = 0 ,
  MAX_FREQ_100KHz ,
  MAX_FREQ_200KHz ,
  MAX_FREQ_500KHz ,
  MAX_FREQ_1MHz
}
 Defines available clocks of ATmega328P, used for analog input. More...
 
enum class  board::AnalogReference : uint8_t {
  board::AREF = 0 ,
  board::AVCC ,
  board::INTERNAL_1_1V
}
 Defines available voltage references of ATmega328P, used for analog input. More...
 
enum class  board::AnalogPin : uint8_t {
  board::A0 = 0 ,
  board::A1 ,
  board::A2 ,
  board::A3 ,
  board::A4 ,
  board::A5 ,
  board::TEMP ,
  board::BANDGAP ,
  NONE = UINT8_MAX
}
 Defines all available analog input pins of ATmega328P, with reference to Arduino UNO pins. More...
 
enum class  board::PWMPin : uint8_t {
  D6_PD6_OC0A = 0 ,
  D5_PD5_OC0B ,
  D9_PB1_OC1A ,
  D10_PB2_OC1B ,
  D11_PB3_OC2A ,
  D3_PD3_OC2B ,
  D6 = D6_PD6_OC0A ,
  D5 = D5_PD5_OC0B ,
  D9 = D9_PB1_OC1A ,
  D10 = D10_PB2_OC1B ,
  D11 = D11_PB3_OC2A ,
  D3 = D3_PD3_OC2B ,
  NONE = UINT8_MAX
}
 Defines all digital output pins of ATmega328P, capable of PWM output. More...
 
enum class  board::ExternalInterruptPin : uint8_t {
  D2_PD2_EXT0 = 0 ,
  D3_PD3_EXT1 ,
  D2 = D2_PD2_EXT0 ,
  D3 = D3_PD3_EXT1
}
 Defines all digital output pins of ATmega328P, usable as direct external interrupt pins. More...
 
enum class  board::InterruptPin : uint8_t {
  D0_PD0_PCI2 = uint8_t(DigitalPin::D0_PD0) ,
  D1_PD1_PCI2 = uint8_t(DigitalPin::D1_PD1) ,
  D2_PD2_PCI2 = uint8_t(DigitalPin::D2_PD2) ,
  D3_PD3_PCI2 = uint8_t(DigitalPin::D3_PD3) ,
  D4_PD4_PCI2 = uint8_t(DigitalPin::D4_PD4) ,
  D5_PD5_PCI2 = uint8_t(DigitalPin::D5_PD5) ,
  D6_PD6_PCI2 = uint8_t(DigitalPin::D6_PD6) ,
  D7_PD7_PCI2 = uint8_t(DigitalPin::D7_PD7) ,
  D8_PB0_PCI0 = uint8_t(DigitalPin::D8_PB0) ,
  D9_PB1_PCI0 = uint8_t(DigitalPin::D9_PB1) ,
  D10_PB2_PCI0 = uint8_t(DigitalPin::D10_PB2) ,
  D11_PB3_PCI0 = uint8_t(DigitalPin::D11_PB3) ,
  D12_PB4_PCI0 = uint8_t(DigitalPin::D12_PB4) ,
  D13_PB5_PCI0 = uint8_t(DigitalPin::D13_PB5) ,
  D14_PC0_PCI1 = uint8_t(DigitalPin::D14_PC0) ,
  D15_PC1_PCI1 = uint8_t(DigitalPin::D15_PC1) ,
  D16_PC2_PCI1 = uint8_t(DigitalPin::D16_PC2) ,
  D17_PC3_PCI1 = uint8_t(DigitalPin::D17_PC3) ,
  D18_PC4_PCI1 = uint8_t(DigitalPin::D18_PC4) ,
  D19_PC5_PCI1 = uint8_t(DigitalPin::D19_PC5) ,
  D0 = D0_PD0_PCI2 ,
  D1 = D1_PD1_PCI2 ,
  D2 = D2_PD2_PCI2 ,
  D3 = D3_PD3_PCI2 ,
  D4 = D4_PD4_PCI2 ,
  D5 = D5_PD5_PCI2 ,
  D6 = D6_PD6_PCI2 ,
  D7 = D7_PD7_PCI2 ,
  D8 = D8_PB0_PCI0 ,
  D9 = D9_PB1_PCI0 ,
  D10 = D10_PB2_PCI0 ,
  D11 = D11_PB3_PCI0 ,
  D12 = D12_PB4_PCI0 ,
  D13 = D13_PB5_PCI0 ,
  A0 = D14_PC0_PCI1 ,
  A1 = D15_PC1_PCI1 ,
  A2 = D16_PC2_PCI1 ,
  A3 = D17_PC3_PCI1 ,
  A4 = D18_PC4_PCI1 ,
  A5 = D19_PC5_PCI1 ,
  A0_PC0_PCI1 = D14_PC0_PCI1 ,
  A1_PC1_PCI1 = D15_PC1_PCI1 ,
  A2_PC2_PCI1 = D16_PC2_PCI1 ,
  A3_PC3_PCI1 = D17_PC3_PCI1 ,
  A4_PC4_PCI1 = D18_PC4_PCI1 ,
  A5_PC5_PCI1 = D19_PC5_PCI1
}
 Defines all digital output pins of ATmega328P, usable as pin change interrupt (PCI) pins. More...
 
enum class  board::USART : uint8_t { USART0 = 0 }
 Defines all USART modules of ATmega328P, actually only one. More...
 
enum class  board::Timer : uint8_t {
  board::TIMER0 = 0 ,
  board::TIMER1 = 1 ,
  board::TIMER2 = 2
}
 Defines all timers available for ATmega328P. More...
 
enum class  board::SleepMode : uint8_t {
  board::IDLE = SLEEP_MODE_IDLE ,
  board::ADC_NOISE_REDUCTION = SLEEP_MODE_ADC ,
  board::POWER_DOWN = SLEEP_MODE_PWR_DOWN ,
  board::POWER_SAVE = SLEEP_MODE_PWR_SAVE ,
  board::STANDBY = SLEEP_MODE_STANDBY ,
  board::EXTENDED_STANDBY = SLEEP_MODE_EXT_STANDBY
}
 Defines all available sleep modes for ATmega328P. More...
 

Functions

static void board::init ()
 Performs special initialization for ATmega328P, actually nothing at all. More...
 

Detailed Description

ATmega328P specific features and pins.

Definition in file uno.h.