|
|
@ -111,18 +111,18 @@ static const uint8_t SCK = 15;
|
|
|
|
|
|
|
|
|
|
|
|
// Mapping of analog pins as digital I/O
|
|
|
|
// Mapping of analog pins as digital I/O
|
|
|
|
// A6-A11 share with digital pins
|
|
|
|
// A6-A11 share with digital pins
|
|
|
|
static const uint8_t A0 = 18;
|
|
|
|
static const uint8_t ADC0 = 18;
|
|
|
|
static const uint8_t A1 = 19;
|
|
|
|
static const uint8_t ADC1 = 19;
|
|
|
|
static const uint8_t A2 = 20;
|
|
|
|
static const uint8_t ADC2 = 20;
|
|
|
|
static const uint8_t A3 = 21;
|
|
|
|
static const uint8_t ADC3 = 21;
|
|
|
|
static const uint8_t A4 = 22;
|
|
|
|
static const uint8_t ADC4 = 22;
|
|
|
|
static const uint8_t A5 = 23;
|
|
|
|
static const uint8_t ADC5 = 23;
|
|
|
|
static const uint8_t A6 = 24; // D4
|
|
|
|
static const uint8_t ADC6 = 24; // D4
|
|
|
|
static const uint8_t A7 = 25; // D6
|
|
|
|
static const uint8_t ADC7 = 25; // D6
|
|
|
|
static const uint8_t A8 = 26; // D8
|
|
|
|
static const uint8_t ADC8 = 26; // D8
|
|
|
|
static const uint8_t A9 = 27; // D9
|
|
|
|
static const uint8_t ADC9 = 27; // D9
|
|
|
|
static const uint8_t A10 = 28; // D10
|
|
|
|
static const uint8_t ADC10 = 28; // D10
|
|
|
|
static const uint8_t A11 = 29; // D12
|
|
|
|
static const uint8_t ADC11 = 29; // D12
|
|
|
|
|
|
|
|
|
|
|
|
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
|
|
|
|
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
|
|
|
|
#define digitalPinToPCICRbit(p) 0
|
|
|
|
#define digitalPinToPCICRbit(p) 0
|
|
|
@ -220,26 +220,26 @@ const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
|
|
|
|
PC, // D5 - PC6
|
|
|
|
PC, // D5 - PC6
|
|
|
|
PD, // D6 - PD7
|
|
|
|
PD, // D6 - PD7
|
|
|
|
PE, // D7 - PE6
|
|
|
|
PE, // D7 - PE6
|
|
|
|
|
|
|
|
|
|
|
|
PB, // D8 - PB4
|
|
|
|
PB, // D8 - PB4
|
|
|
|
PB, // D9 - PB5
|
|
|
|
PB, // D9 - PB5
|
|
|
|
PB, // D10 - PB6
|
|
|
|
PB, // D10 - PB6
|
|
|
|
PB, // D11 - PB7
|
|
|
|
PB, // D11 - PB7
|
|
|
|
PD, // D12 - PD6
|
|
|
|
PD, // D12 - PD6
|
|
|
|
PC, // D13 - PC7
|
|
|
|
PC, // D13 - PC7
|
|
|
|
|
|
|
|
|
|
|
|
PB, // D14 - MISO - PB3
|
|
|
|
PB, // D14 - MISO - PB3
|
|
|
|
PB, // D15 - SCK - PB1
|
|
|
|
PB, // D15 - SCK - PB1
|
|
|
|
PB, // D16 - MOSI - PB2
|
|
|
|
PB, // D16 - MOSI - PB2
|
|
|
|
PB, // D17 - SS - PB0
|
|
|
|
PB, // D17 - SS - PB0
|
|
|
|
|
|
|
|
|
|
|
|
PF, // D18 - A0 - PF7
|
|
|
|
PF, // D18 - A0 - PF7
|
|
|
|
PF, // D19 - A1 - PF6
|
|
|
|
PF, // D19 - A1 - PF6
|
|
|
|
PF, // D20 - A2 - PF5
|
|
|
|
PF, // D20 - A2 - PF5
|
|
|
|
PF, // D21 - A3 - PF4
|
|
|
|
PF, // D21 - A3 - PF4
|
|
|
|
PF, // D22 - A4 - PF1
|
|
|
|
PF, // D22 - A4 - PF1
|
|
|
|
PF, // D23 - A5 - PF0
|
|
|
|
PF, // D23 - A5 - PF0
|
|
|
|
|
|
|
|
|
|
|
|
PD, // D24 - PD5
|
|
|
|
PD, // D24 - PD5
|
|
|
|
PD, // D25 / D6 - A7 - PD7
|
|
|
|
PD, // D25 / D6 - A7 - PD7
|
|
|
|
PB, // D26 / D8 - A8 - PB4
|
|
|
|
PB, // D26 / D8 - A8 - PB4
|
|
|
@ -257,26 +257,26 @@ const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
|
|
|
|
_BV(6), // D5 - PC6
|
|
|
|
_BV(6), // D5 - PC6
|
|
|
|
_BV(7), // D6 - PD7
|
|
|
|
_BV(7), // D6 - PD7
|
|
|
|
_BV(6), // D7 - PE6
|
|
|
|
_BV(6), // D7 - PE6
|
|
|
|
|
|
|
|
|
|
|
|
_BV(4), // D8 - PB4
|
|
|
|
_BV(4), // D8 - PB4
|
|
|
|
_BV(5), // D9 - PB5
|
|
|
|
_BV(5), // D9 - PB5
|
|
|
|
_BV(6), // D10 - PB6
|
|
|
|
_BV(6), // D10 - PB6
|
|
|
|
_BV(7), // D11 - PB7
|
|
|
|
_BV(7), // D11 - PB7
|
|
|
|
_BV(6), // D12 - PD6
|
|
|
|
_BV(6), // D12 - PD6
|
|
|
|
_BV(7), // D13 - PC7
|
|
|
|
_BV(7), // D13 - PC7
|
|
|
|
|
|
|
|
|
|
|
|
_BV(3), // D14 - MISO - PB3
|
|
|
|
_BV(3), // D14 - MISO - PB3
|
|
|
|
_BV(1), // D15 - SCK - PB1
|
|
|
|
_BV(1), // D15 - SCK - PB1
|
|
|
|
_BV(2), // D16 - MOSI - PB2
|
|
|
|
_BV(2), // D16 - MOSI - PB2
|
|
|
|
_BV(0), // D17 - SS - PB0
|
|
|
|
_BV(0), // D17 - SS - PB0
|
|
|
|
|
|
|
|
|
|
|
|
_BV(7), // D18 - A0 - PF7
|
|
|
|
_BV(7), // D18 - A0 - PF7
|
|
|
|
_BV(6), // D19 - A1 - PF6
|
|
|
|
_BV(6), // D19 - A1 - PF6
|
|
|
|
_BV(5), // D20 - A2 - PF5
|
|
|
|
_BV(5), // D20 - A2 - PF5
|
|
|
|
_BV(4), // D21 - A3 - PF4
|
|
|
|
_BV(4), // D21 - A3 - PF4
|
|
|
|
_BV(1), // D22 - A4 - PF1
|
|
|
|
_BV(1), // D22 - A4 - PF1
|
|
|
|
_BV(0), // D23 - A5 - PF0
|
|
|
|
_BV(0), // D23 - A5 - PF0
|
|
|
|
|
|
|
|
|
|
|
|
_BV(5), // D24 - PD5
|
|
|
|
_BV(5), // D24 - PD5
|
|
|
|
_BV(7), // D25 / D6 - A7 - PD7
|
|
|
|
_BV(7), // D25 / D6 - A7 - PD7
|
|
|
|
_BV(4), // D26 / D8 - A8 - PB4
|
|
|
|
_BV(4), // D26 / D8 - A8 - PB4
|
|
|
@ -286,24 +286,24 @@ const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
|
|
|
|
const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
TIMER0B, /* 3 */
|
|
|
|
TIMER0B, /* 3 */
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
TIMER3A, /* 5 */
|
|
|
|
TIMER3A, /* 5 */
|
|
|
|
TIMER4D, /* 6 */
|
|
|
|
TIMER4D, /* 6 */
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
|
|
|
|
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
TIMER1A, /* 9 */
|
|
|
|
TIMER1A, /* 9 */
|
|
|
|
TIMER1B, /* 10 */
|
|
|
|
TIMER1B, /* 10 */
|
|
|
|
TIMER0A, /* 11 */
|
|
|
|
TIMER0A, /* 11 */
|
|
|
|
|
|
|
|
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
TIMER4A, /* 13 */
|
|
|
|
TIMER4A, /* 13 */
|
|
|
|
|
|
|
|
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
|
NOT_ON_TIMER,
|
|
|
@ -324,11 +324,11 @@ const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
|
|
|
|
const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {
|
|
|
|
7, // A0 PF7 ADC7
|
|
|
|
7, // A0 PF7 ADC7
|
|
|
|
6, // A1 PF6 ADC6
|
|
|
|
6, // A1 PF6 ADC6
|
|
|
|
5, // A2 PF5 ADC5
|
|
|
|
5, // A2 PF5 ADC5
|
|
|
|
4, // A3 PF4 ADC4
|
|
|
|
4, // A3 PF4 ADC4
|
|
|
|
1, // A4 PF1 ADC1
|
|
|
|
1, // A4 PF1 ADC1
|
|
|
|
0, // A5 PF0 ADC0
|
|
|
|
0, // A5 PF0 ADC0
|
|
|
|
8, // A6 D4 PD4 ADC8
|
|
|
|
8, // A6 D4 PD4 ADC8
|
|
|
|
10, // A7 D6 PD7 ADC10
|
|
|
|
10, // A7 D6 PD7 ADC10
|
|
|
|
11, // A8 D8 PB4 ADC11
|
|
|
|
11, // A8 D8 PB4 ADC11
|
|
|
|