FastArduino - ATmega164/324/644/1284P Support v1.10
C++ library to build fast but small Arduino/AVR projects
Loading...
Searching...
No Matches
Namespaces | Enumerations | Functions
atmega_xx4.h File Reference

ATmega644/1284 specific features and pins. More...

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

Go to the source code of this file.

Namespaces

namespace  board
 Defines all types and constants specific to support Arduino MEGA board (ATmega644 MCU target).
 

Enumerations

enum class  board::Port : uint8_t {
  board::PORT_A = 0 ,
  board::PORT_B ,
  board::PORT_C ,
  board::PORT_D ,
  NONE = UINT8_MAX
}
 Defines all available ports of ATmega644. More...
 
enum class  board::DigitalPin : uint8_t {
  board::D0_PA0 = 0 ,
  board::D1_PA1 ,
  board::D2_PA2 ,
  board::D3_PA3 ,
  board::D4_PA4 ,
  board::D5_PA5 ,
  board::D6_PA6 ,
  board::D7_PA7 ,
  board::D8_PB0 ,
  board::D9_PB1 ,
  board::D10_PB2 ,
  board::D11_PB3 ,
  board::D12_PB4 ,
  board::D13_PB5 ,
  board::D14_PB6 ,
  board::D15_PB7 ,
  board::D16_PC0 ,
  board::D17_PC1 ,
  board::D18_PC2 ,
  board::D19_PC3 ,
  board::D20_PC4 ,
  board::D21_PC5 ,
  board::D22_PC6 ,
  board::D23_PC7 ,
  board::D24_PD0 ,
  board::D25_PD1 ,
  board::D26_PD2 ,
  board::D27_PD3 ,
  board::D28_PD4 ,
  board::D29_PD5 ,
  board::D30_PD6 ,
  board::D31_PD7 ,
  board::LED = D8_PB0 ,
  NONE = 0XFF
}
 Defines all available digital input/output pins of ATmega644, with reference to Arduino MEGA 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 ATmega644, used for analog input. More...
 
enum class  board::AnalogReference : uint8_t {
  board::AREF = 0 ,
  board::AVCC ,
  board::INTERNAL_1_1V ,
  board::INTERNAL_2_56V
}
 Defines available voltage references of ATmega644, 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::A6 ,
  board::A7 ,
  board::BANDGAP ,
  NONE = UINT8_MAX
}
 Defines all available analog input pins of ATmega644, with reference to Arduino MEGA pins. More...
 
enum class  board::PWMPin : uint8_t {
  D11_PB3_OC0A = 0 ,
  D12_PB4_OC0B ,
  D28_PD4_OC1B ,
  D29_PD5_OC1A ,
  D30_PD6_OC2B ,
  D31_PD7_OC2A ,
  D14_PB6_OC3A ,
  D15_PB7_OC3B ,
  NONE = UINT8_MAX
}
 Defines all digital output pins of ATmega644, capable of PWM output. More...
 
enum class  board::ExternalInterruptPin : uint8_t {
  D26_PD2_EXT0 = 0 ,
  D27_PD3_EXT1 ,
  D10_PB2_EXT2
}
 Defines all digital output pins of ATmega644, usable as direct external interrupt pins. More...
 
enum class  board::InterruptPin : uint8_t {
  D0_PA0_PCI0 = uint8_t(DigitalPin::D0_PA0) ,
  D1_PA1_PCI0 = uint8_t(DigitalPin::D1_PA1) ,
  D2_PA2_PCI0 = uint8_t(DigitalPin::D2_PA2) ,
  D3_PA3_PCI0 = uint8_t(DigitalPin::D3_PA3) ,
  D4_PA4_PCI0 = uint8_t(DigitalPin::D4_PA4) ,
  D5_PA5_PCI0 = uint8_t(DigitalPin::D5_PA5) ,
  D6_PA6_PCI0 = uint8_t(DigitalPin::D6_PA6) ,
  D7_PA7_PCI0 = uint8_t(DigitalPin::D7_PA7) ,
  D8_PB0_PCI1 = uint8_t(DigitalPin::D8_PB0) ,
  D9_PB1_PCI1 = uint8_t(DigitalPin::D9_PB1) ,
  D10_PB2_PCI1 = uint8_t(DigitalPin::D10_PB2) ,
  D11_PB3_PCI1 = uint8_t(DigitalPin::D11_PB3) ,
  D12_PB4_PCI1 = uint8_t(DigitalPin::D12_PB4) ,
  D13_PB5_PCI1 = uint8_t(DigitalPin::D13_PB5) ,
  D14_PB6_PCI1 = uint8_t(DigitalPin::D14_PB6) ,
  D15_PB7_PCI1 = uint8_t(DigitalPin::D15_PB7) ,
  D16_PC0_PCI2 = uint8_t(DigitalPin::D16_PC0) ,
  D17_PC1_PCI2 = uint8_t(DigitalPin::D17_PC1) ,
  D18_PC2_PCI2 = uint8_t(DigitalPin::D18_PC2) ,
  D19_PC3_PCI2 = uint8_t(DigitalPin::D19_PC3) ,
  D20_PC4_PCI2 = uint8_t(DigitalPin::D20_PC4) ,
  D21_PC5_PCI2 = uint8_t(DigitalPin::D21_PC5) ,
  D22_PC6_PCI2 = uint8_t(DigitalPin::D22_PC6) ,
  D23_PC7_PCI2 = uint8_t(DigitalPin::D23_PC7) ,
  D24_PD0_PCI3 = uint8_t(DigitalPin::D24_PD0) ,
  D25_PD1_PCI3 = uint8_t(DigitalPin::D25_PD1) ,
  D26_PD2_PCI3 = uint8_t(DigitalPin::D26_PD2) ,
  D27_PD3_PCI3 = uint8_t(DigitalPin::D27_PD3) ,
  D28_PD4_PCI3 = uint8_t(DigitalPin::D28_PD4) ,
  D29_PD5_PCI3 = uint8_t(DigitalPin::D29_PD5) ,
  D30_PD6_PCI3 = uint8_t(DigitalPin::D30_PD6) ,
  D31_PD7_PCI3 = uint8_t(DigitalPin::D31_PD7)
}
 Defines all digital output pins of ATmega644, usable as pin change interrupt (PCI) pins. More...
 
enum class  board::USART : uint8_t {
  board::USART0 = 0 ,
  board::USART1 = 1
}
 Defines all USART modules of ATmega644. More...
 
enum class  board::Timer : uint8_t {
  board::TIMER0 = 0 ,
  board::TIMER1 = 1 ,
  board::TIMER2 = 2 ,
  board::TIMER3 = 3
}
 Defines all timers available for ATmega644. 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 ATmega644. More...
 

Functions

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

Detailed Description

ATmega644/1284 specific features and pins.

Definition in file atmega_xx4.h.