AVRTools
A Library for the AVR ATmega328 and ATmega2560 Microcontrollers
Loading...
Searching...
No Matches
ArduinoMegaPins.h
Go to the documentation of this file.
1/*
2 ArduinoMegaPins.h - Macros naming the pins on the Arduino Mega.
3 For AVR ATMega328p (Arduino Uno) and ATMega2560 (Arduino Mega).
4 This is part of the AVRTools library.
5 Copyright (c) 2014 Igor Mikolic-Torreira. All right reserved.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21
40#ifndef ArduinoMegaPins_h
41#define ArduinoMegaPins_h
42
43#ifndef ArduinoPinsDefined
44#define ArduinoPinsDefined
45#else
46#error "Only include one Arduino model pin definition file; more than one appears to be included"
47#endif
48
49
50
51#include "GpioPinMacros.h"
52
53
54#define pPinA00 GpioPinAnalog( F, 0, 0 ) // PF0, ADC0
55#define pPinA01 GpioPinAnalog( F, 1, 1 ) // PF1, ADC1
56#define pPinA02 GpioPinAnalog( F, 2, 2 ) // PF2, ADC2
57#define pPinA03 GpioPinAnalog( F, 3, 3 ) // PF3, ADC3
58#define pPinA04 GpioPinAnalog( F, 4, 4 ) // PF4, ADC4, TCK
59#define pPinA05 GpioPinAnalog( F, 5, 5 ) // PF5, ADC5, TMS
60#define pPinA06 GpioPinAnalog( F, 6, 6 ) // PF5, ADC6, TDO
61#define pPinA07 GpioPinAnalog( F, 7, 7 ) // PF5, ADC7, TDI
62
63#define pPinA08 GpioPinAnalog( K, 0, 8 ) // PF0, ADC8, PCINT16
64#define pPinA09 GpioPinAnalog( K, 1, 9 ) // PF1, ADC9, PCINT17
65#define pPinA10 GpioPinAnalog( K, 2, 10 ) // PF2, ADC10, PCINT18
66#define pPinA11 GpioPinAnalog( K, 3, 11 ) // PF3, ADC11, PCINT19
67#define pPinA12 GpioPinAnalog( K, 4, 12 ) // PF4, ADC12, PCINT20
68#define pPinA13 GpioPinAnalog( K, 5, 13 ) // PF5, ADC13, PCINT21
69#define pPinA14 GpioPinAnalog( K, 6, 14 ) // PF5, ADC14, PCINT22
70#define pPinA15 GpioPinAnalog( K, 7, 15 ) // PF5, ADC15, PCINT23
71
72#define pPin00 GpioPin( E, 0 ) // PE0, RXD0, PCINT8
73#define pPin01 GpioPin( E, 1 ) // PE1, TXD0, PCINT3
74#define pPin02 GpioPinPwm( E, 4, 3, B ) // PE4, INT4, OC3B
75#define pPin03 GpioPinPwm( E, 5, 3, C ) // PE5, INT5, OC3C
76#define pPin04 GpioPinPwm( G, 5, 0, B ) // PG5, OC0B
77#define pPin05 GpioPinPwm( E, 3, 3, A ) // PE3, AIN1, OC3A
78
79#define pPin06 GpioPinPwm( H, 3, 4, A ) // PH3, OC4A, PCINT8
80#define pPin07 GpioPinPwm( H, 4, 4, B ) // PH4, OC4B
81#define pPin08 GpioPinPwm( H, 5, 4, C ) // PH5, OC4C
82#define pPin09 GpioPinPwm( H, 6, 2, B ) // PH6, OC2B
83#define pPin10 GpioPinPwm( B, 4, 2, A ) // PB4, OC2A, PCINT4
84
85#define pPin11 GpioPinPwm( B, 5, 1, A ) // PB5, OC1A, PCINT5
86#define pPin12 GpioPinPwm( B, 6, 1, B ) // PB6, OC1B, PCINT6
87#define pPin13 GpioPinPwm( B, 7, 0, A ) // PB7, OC0A, PCINT7
88#define pPin14 GpioPin( J, 1 ) // PJ1, TXD3, PCINT10
89#define pPin15 GpioPin( J, 0 ) // PJ0, RXD3, PCINT9
90
91#define pPin16 GpioPin( H, 1 ) // PH1, TXD2
92#define pPin17 GpioPin( H, 0 ) // PH0, RXD2
93#define pPin18 GpioPin( D, 3 ) // PD3, INT3, TXD1
94#define pPin19 GpioPin( D, 2 ) // PD2, INT2, RXD1
95#define pPin20 GpioPin( D, 1 ) // PD1, INT1, SDA
96
97#define pPin21 GpioPin( D, 0 ) // PD0, INT0, SCL
98#define pPin22 GpioPin( A, 0 ) // PA0, AD0
99#define pPin23 GpioPin( A, 1 ) // PA1, AD1
100#define pPin24 GpioPin( A, 2 ) // PA2, AD2
101#define pPin25 GpioPin( A, 3 ) // PA3, AD3
102
103#define pPin26 GpioPin( A, 4 ) // PA4, AD4
104#define pPin27 GpioPin( A, 5 ) // PA5, AD5
105#define pPin28 GpioPin( A, 6 ) // PA6, AD6
106#define pPin29 GpioPin( A, 7 ) // PA7, AD7
107#define pPin30 GpioPin( C, 7 ) // PC7, A15
108
109#define pPin31 GpioPin( C, 6 ) // PC6, A14
110#define pPin32 GpioPin( C, 5 ) // PC5, A13
111#define pPin33 GpioPin( C, 4 ) // PC4, A12
112#define pPin34 GpioPin( C, 3 ) // PC3, A11
113#define pPin35 GpioPin( C, 2 ) // PC2, A10
114
115#define pPin36 GpioPin( C, 1 ) // PC1, A9
116#define pPin37 GpioPin( C, 0 ) // PC0, A8
117#define pPin38 GpioPin( D, 7 ) // PD7, T0
118#define pPin39 GpioPin( G, 2 ) // PG2, ALE
119#define pPin40 GpioPin( G, 1 ) // PG1, RD
120
121#define pPin41 GpioPin( G, 0 ) // PG0, WR
122#define pPin42 GpioPin( L, 7 ) // PL7
123#define pPin43 GpioPin( L, 6 ) // PL6
124#define pPin44 GpioPinPwm( L, 5, 5, C ) // PL5, OC5C
125#define pPin45 GpioPinPwm( L, 4, 5, B ) // PL4, OC5B
126
127#define pPin46 GpioPinPwm( L, 3, 5, A ) // PL3, OC5A
128#define pPin47 GpioPin( L, 2 ) // PL2, T5
129#define pPin48 GpioPin( L, 1 ) // PL1, ICP5
130#define pPin49 GpioPin( L, 0 ) // PL0, ICP4
131#define pPin50 GpioPin( B, 3 ) // PB3, MISO, PCINT3
132
133#define pPin51 GpioPin( B, 2 ) // PB2, MOSI, PCINT2
134#define pPin52 GpioPin( B, 1 ) // PB1, SCK, PCINT1
135#define pPin53 GpioPin( B, 0 ) // PB0, SS, PCINT0
136
137#define pSDA pPin20 // I2C SDA
138#define pSCL pPin21 // I2C SCL
139
140#define pSS pPin53 // SPI SS
141#define pMOSI pPin51 // SPI MOSI
142#define pMISO pPin50 // SPI MISO
143#define pSCK pPin52 // SPI SCK
144
145
146#endif
This file contains the primary macros for naming and manipulating GPIO pin names.