FastArduino - ATmega164/324/644/1284P Support v1.10
C++ library to build fast but small Arduino/AVR projects
|
Defines all types and constants specific to support Arduino MEGA board (ATmega644 MCU target). More...
Enumerations | |
enum class | Port : uint8_t { PORT_A = 0 , PORT_B , PORT_C , PORT_D , NONE = UINT8_MAX } |
Defines all available ports of ATmega644. More... | |
enum class | DigitalPin : uint8_t { D0_PA0 = 0 , D1_PA1 , D2_PA2 , D3_PA3 , D4_PA4 , D5_PA5 , D6_PA6 , D7_PA7 , D8_PB0 , D9_PB1 , D10_PB2 , D11_PB3 , D12_PB4 , D13_PB5 , D14_PB6 , D15_PB7 , D16_PC0 , D17_PC1 , D18_PC2 , D19_PC3 , D20_PC4 , D21_PC5 , D22_PC6 , D23_PC7 , D24_PD0 , D25_PD1 , D26_PD2 , D27_PD3 , D28_PD4 , D29_PD5 , D30_PD6 , D31_PD7 , LED = D8_PB0 , NONE = 0XFF } |
Defines all available digital input/output pins of ATmega644, with reference to Arduino MEGA pins. More... | |
enum class | 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 | AnalogReference : uint8_t { AREF = 0 , AVCC , INTERNAL_1_1V , INTERNAL_2_56V } |
Defines available voltage references of ATmega644, used for analog input. More... | |
enum class | AnalogPin : uint8_t { A0 = 0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , BANDGAP , NONE = UINT8_MAX } |
Defines all available analog input pins of ATmega644, with reference to Arduino MEGA pins. More... | |
enum class | 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 | 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 | 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 | USART : uint8_t { USART0 = 0 , USART1 = 1 } |
Defines all USART modules of ATmega644. More... | |
enum class | Timer : uint8_t { TIMER0 = 0 , TIMER1 = 1 , TIMER2 = 2 , TIMER3 = 3 } |
Defines all timers available for ATmega644. More... | |
enum class | SleepMode : uint8_t { IDLE = SLEEP_MODE_IDLE , ADC_NOISE_REDUCTION = SLEEP_MODE_ADC , POWER_DOWN = SLEEP_MODE_PWR_DOWN , POWER_SAVE = SLEEP_MODE_PWR_SAVE , STANDBY = SLEEP_MODE_STANDBY , EXTENDED_STANDBY = SLEEP_MODE_EXT_STANDBY } |
Defines all available sleep modes for ATmega644. More... | |
Functions | |
static void | init () |
Performs special initialization for ATmega644, actually nothing at all. More... | |
Defines all types and constants specific to support Arduino MEGA board (ATmega644 MCU target).
|
strong |
Defines all available ports of ATmega644.
Enumerator | |
---|---|
PORT_A | Port A (8 IO) |
PORT_B | Port B (8 IO) |
PORT_C | Port C (8 IO) |
PORT_D | Port D (8 IO) |
Definition at line 54 of file atmega_xx4.h.
|
strong |
Defines all available digital input/output pins of ATmega644, with reference to Arduino MEGA pins.
Only Arduino MEGA pins are listed here. Each symbol is in the form Dxx_Pyz
, where xx
is the pin number on Arduino, y
is the port letter and z
is the bit number for that pin within its port.
Definition at line 75 of file atmega_xx4.h.
|
strong |
Defines available clocks of ATmega644, used for analog input.
Definition at line 154 of file atmega_xx4.h.
|
strong |
Defines available voltage references of ATmega644, used for analog input.
Definition at line 166 of file atmega_xx4.h.
|
strong |
Defines all available analog input pins of ATmega644, with reference to Arduino MEGA pins.
Note that this includes also other sources than pin, e.g. the internal bandgap reference.
Enumerator | |
---|---|
A0 | Pin ADC0 (PA0) |
A1 | Pin ADC1 (PA1) |
A2 | Pin ADC2 (PA2) |
A3 | Pin ADC3 (PA3) |
A4 | Pin ADC4 (PA4) |
A5 | Pin ADC5 (PA5) |
A6 | Pin ADC6 (PA6) |
A7 | Pin ADC7 (PA7) |
BANDGAP | Bandgap reference. |
Definition at line 186 of file atmega_xx4.h.
|
strong |
Defines all digital output pins of ATmega644, capable of PWM output.
Each symbol is in the form Dxx_Pyz_OCuv
, where xx
is the pin number on Arduino, y
is the port letter, z
is the bit number for that pin within its port, u
is the number of the timer used by this PWM pin and v
the letter indicating which compare register of the timer this PWM pin is mapped to.
Definition at line 218 of file atmega_xx4.h.
|
strong |
Defines all digital output pins of ATmega644, usable as direct external interrupt pins.
Each symbol is in the form Dxx_Pyz_EXTu
, where xx
is the pin number on Arduino, y
is the port letter, z
is the bit number for that pin within its port and u
is the number of the interrupt for that pin.
Definition at line 243 of file atmega_xx4.h.
|
strong |
Defines all digital output pins of ATmega644, usable as pin change interrupt (PCI) pins.
Each symbol is in the form Dxx_Pyz_PCIu
, where xx
is the pin number on Arduino, y
is the port letter, z
is the bit number for that pin within its port and u
is the number of the PCI vector for that pin.
Definition at line 258 of file atmega_xx4.h.
|
strong |
Defines all USART modules of ATmega644.
Enumerator | |
---|---|
USART0 | USART0 is connected to pins D24_PD0 (RX0) and D25_PD1 (TX0). |
USART1 | USART1 is connected to pins D26_PD2 (RX1) and D27_PD3 (TX1). |
Definition at line 304 of file atmega_xx4.h.
|
strong |
Defines all timers available for ATmega644.
Enumerator | |
---|---|
TIMER0 | Timer0 (8 bits) |
TIMER1 | Timer1 (16 bits) |
TIMER2 | Timer2 (8 bits) |
TIMER3 | Timer3 (16 bits) |
Definition at line 315 of file atmega_xx4.h.
|
strong |
Defines all available sleep modes for ATmega644.
Definition at line 332 of file atmega_xx4.h.
|
inlinestatic |
Performs special initialization for ATmega644, actually nothing at all.
This must be called first in your main()
function, even before sei()
. In general you should ALWAYS call this function at the beginning of your main()
even if you know it will not do anything; this will prevent strange behaviors when you want to port your code to another MCU target for which init()
does perform important initialization, e.g. ATmega32u4 (Arduino LEONARDO).
Definition at line 49 of file atmega_xx4.h.