diff options
Diffstat (limited to 'drivers/avr/pro_micro.h')
| -rw-r--r-- | drivers/avr/pro_micro.h | 270 | 
1 files changed, 116 insertions, 154 deletions
| diff --git a/drivers/avr/pro_micro.h b/drivers/avr/pro_micro.h index f9e7ed75d9..762a99a058 100644 --- a/drivers/avr/pro_micro.h +++ b/drivers/avr/pro_micro.h @@ -90,14 +90,14 @@  #undef OCR2_6  #undef OCR2_7 -#define NUM_DIGITAL_PINS  30 +#define NUM_DIGITAL_PINS 30  #define NUM_ANALOG_INPUTS 12 -#define TX_RX_LED_INIT  DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0          PORTD |= (1<<5) -#define TXLED1          PORTD &= ~(1<<5) -#define RXLED0          PORTB |= (1<<0) -#define RXLED1          PORTB &= ~(1<<0) +#define TX_RX_LED_INIT DDRD |= (1 << 5), DDRB |= (1 << 0) +#define TXLED0 PORTD |= (1 << 5) +#define TXLED1 PORTD &= ~(1 << 5) +#define RXLED0 PORTB |= (1 << 0) +#define RXLED1 PORTB &= ~(1 << 0)  static const uint8_t SDA = 2;  static const uint8_t SCL = 3; @@ -111,27 +111,27 @@ static const uint8_t SCK  = 15;  // Mapping of analog pins as digital I/O  // A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24;   // D4 -static const uint8_t ADC7 = 25;   // D6 -static const uint8_t ADC8 = 26;   // D8 -static const uint8_t ADC9 = 27;   // D9 +static const uint8_t ADC0  = 18; +static const uint8_t ADC1  = 19; +static const uint8_t ADC2  = 20; +static const uint8_t ADC3  = 21; +static const uint8_t ADC4  = 22; +static const uint8_t ADC5  = 23; +static const uint8_t ADC6  = 24;  // D4 +static const uint8_t ADC7  = 25;  // D6 +static const uint8_t ADC8  = 26;  // D8 +static const uint8_t ADC9  = 27;  // D9  static const uint8_t ADC10 = 28;  // D10  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 digitalPinToPCMSK(p)    ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) +#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) +#define digitalPinToPCMSKbit(p) (((p) >= 8 && (p) <= 11) ? (p)-4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))  //  __AVR_ATmega32U4__ has an unusual mapping of pins to channels  extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P)  ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) +#define analogPinToChannel(P) (pgm_read_byte(analog_pin_to_channel_PGM + (P)))  #define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) @@ -182,159 +182,121 @@ extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];  // appropriate addresses for various functions (e.g. reading  // and writing)  const uint16_t PROGMEM port_to_mode_PGM[] = { -    NOT_A_PORT, -    NOT_A_PORT, -    (uint16_t) &DDRB, -    (uint16_t) &DDRC, -    (uint16_t) &DDRD, -    (uint16_t) &DDRE, -    (uint16_t) &DDRF, +    NOT_A_PORT, NOT_A_PORT, (uint16_t)&DDRB, (uint16_t)&DDRC, (uint16_t)&DDRD, (uint16_t)&DDRE, (uint16_t)&DDRF,  };  const uint16_t PROGMEM port_to_output_PGM[] = { -    NOT_A_PORT, -    NOT_A_PORT, -    (uint16_t) &PORTB, -    (uint16_t) &PORTC, -    (uint16_t) &PORTD, -    (uint16_t) &PORTE, -    (uint16_t) &PORTF, +    NOT_A_PORT, NOT_A_PORT, (uint16_t)&PORTB, (uint16_t)&PORTC, (uint16_t)&PORTD, (uint16_t)&PORTE, (uint16_t)&PORTF,  };  const uint16_t PROGMEM port_to_input_PGM[] = { -    NOT_A_PORT, -    NOT_A_PORT, -    (uint16_t) &PINB, -    (uint16_t) &PINC, -    (uint16_t) &PIND, -    (uint16_t) &PINE, -    (uint16_t) &PINF, +    NOT_A_PORT, NOT_A_PORT, (uint16_t)&PINB, (uint16_t)&PINC, (uint16_t)&PIND, (uint16_t)&PINE, (uint16_t)&PINF,  };  const uint8_t PROGMEM digital_pin_to_port_PGM[] = { -    PD, // D0 - PD2 -    PD, // D1 - PD3 -    PD, // D2 - PD1 -    PD, // D3 - PD0 -    PD, // D4 - PD4 -    PC, // D5 - PC6 -    PD, // D6 - PD7 -    PE, // D7 - PE6 - -    PB, // D8 - PB4 -    PB, // D9 - PB5 -    PB, // D10 - PB6 -    PB, // D11 - PB7 -    PD, // D12 - PD6 -    PC, // D13 - PC7 - -    PB, // D14 - MISO - PB3 -    PB, // D15 - SCK - PB1 -    PB, // D16 - MOSI - PB2 -    PB, // D17 - SS - PB0 - -    PF, // D18 - A0 - PF7 -    PF, // D19 - A1 - PF6 -    PF, // D20 - A2 - PF5 -    PF, // D21 - A3 - PF4 -    PF, // D22 - A4 - PF1 -    PF, // D23 - A5 - PF0 - -    PD, // D24 - PD5 -    PD, // D25 / D6 - A7 - PD7 -    PB, // D26 / D8 - A8 - PB4 -    PB, // D27 / D9 - A9 - PB5 -    PB, // D28 / D10 - A10 - PB6 -    PD, // D29 / D12 - A11 - PD6 +    PD,  // D0 - PD2 +    PD,  // D1 - PD3 +    PD,  // D2 - PD1 +    PD,  // D3 - PD0 +    PD,  // D4 - PD4 +    PC,  // D5 - PC6 +    PD,  // D6 - PD7 +    PE,  // D7 - PE6 + +    PB,  // D8 - PB4 +    PB,  // D9 - PB5 +    PB,  // D10 - PB6 +    PB,  // D11 - PB7 +    PD,  // D12 - PD6 +    PC,  // D13 - PC7 + +    PB,  // D14 - MISO - PB3 +    PB,  // D15 - SCK - PB1 +    PB,  // D16 - MOSI - PB2 +    PB,  // D17 - SS - PB0 + +    PF,  // D18 - A0 - PF7 +    PF,  // D19 - A1 - PF6 +    PF,  // D20 - A2 - PF5 +    PF,  // D21 - A3 - PF4 +    PF,  // D22 - A4 - PF1 +    PF,  // D23 - A5 - PF0 + +    PD,  // D24 - PD5 +    PD,  // D25 / D6 - A7 - PD7 +    PB,  // D26 / D8 - A8 - PB4 +    PB,  // D27 / D9 - A9 - PB5 +    PB,  // D28 / D10 - A10 - PB6 +    PD,  // D29 / D12 - A11 - PD6  };  const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { -    _BV(2), // D0 - PD2 -    _BV(3), // D1 - PD3 -    _BV(1), // D2 - PD1 -    _BV(0), // D3 - PD0 -    _BV(4), // D4 - PD4 -    _BV(6), // D5 - PC6 -    _BV(7), // D6 - PD7 -    _BV(6), // D7 - PE6 - -    _BV(4), // D8 - PB4 -    _BV(5), // D9 - PB5 -    _BV(6), // D10 - PB6 -    _BV(7), // D11 - PB7 -    _BV(6), // D12 - PD6 -    _BV(7), // D13 - PC7 - -    _BV(3), // D14 - MISO - PB3 -    _BV(1), // D15 - SCK - PB1 -    _BV(2), // D16 - MOSI - PB2 -    _BV(0), // D17 - SS - PB0 - -    _BV(7), // D18 - A0 - PF7 -    _BV(6), // D19 - A1 - PF6 -    _BV(5), // D20 - A2 - PF5 -    _BV(4), // D21 - A3 - PF4 -    _BV(1), // D22 - A4 - PF1 -    _BV(0), // D23 - A5 - PF0 - -    _BV(5), // D24 - PD5 -    _BV(7), // D25 / D6 - A7 - PD7 -    _BV(4), // D26 / D8 - A8 - PB4 -    _BV(5), // D27 / D9 - A9 - PB5 -    _BV(6), // D28 / D10 - A10 - PB6 -    _BV(6), // D29 / D12 - A11 - PD6 +    _BV(2),  // D0 - PD2 +    _BV(3),  // D1 - PD3 +    _BV(1),  // D2 - PD1 +    _BV(0),  // D3 - PD0 +    _BV(4),  // D4 - PD4 +    _BV(6),  // D5 - PC6 +    _BV(7),  // D6 - PD7 +    _BV(6),  // D7 - PE6 + +    _BV(4),  // D8 - PB4 +    _BV(5),  // D9 - PB5 +    _BV(6),  // D10 - PB6 +    _BV(7),  // D11 - PB7 +    _BV(6),  // D12 - PD6 +    _BV(7),  // D13 - PC7 + +    _BV(3),  // D14 - MISO - PB3 +    _BV(1),  // D15 - SCK - PB1 +    _BV(2),  // D16 - MOSI - PB2 +    _BV(0),  // D17 - SS - PB0 + +    _BV(7),  // D18 - A0 - PF7 +    _BV(6),  // D19 - A1 - PF6 +    _BV(5),  // D20 - A2 - PF5 +    _BV(4),  // D21 - A3 - PF4 +    _BV(1),  // D22 - A4 - PF1 +    _BV(0),  // D23 - A5 - PF0 + +    _BV(5),  // D24 - PD5 +    _BV(7),  // D25 / D6 - A7 - PD7 +    _BV(4),  // D26 / D8 - A8 - PB4 +    _BV(5),  // D27 / D9 - A9 - PB5 +    _BV(6),  // D28 / D10 - A10 - PB6 +    _BV(6),  // D29 / D12 - A11 - PD6  };  const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    TIMER0B,        /* 3 */ -    NOT_ON_TIMER, -    TIMER3A,        /* 5 */ -    TIMER4D,        /* 6 */ +    NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, TIMER0B, /* 3 */ +    NOT_ON_TIMER, TIMER3A,                             /* 5 */ +    TIMER4D,                                           /* 6 */      NOT_ON_TIMER, -    NOT_ON_TIMER, -    TIMER1A,        /* 9 */ -    TIMER1B,        /* 10 */ -    TIMER0A,        /* 11 */ +    NOT_ON_TIMER, TIMER1A, /* 9 */ +    TIMER1B,               /* 10 */ +    TIMER0A,               /* 11 */ -    NOT_ON_TIMER, -    TIMER4A,        /* 13 */ +    NOT_ON_TIMER, 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, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, -    NOT_ON_TIMER, +    NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER,  };  const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { -    7,  // A0               PF7                 ADC7 -    6,  // A1               PF6                 ADC6 -    5,  // A2               PF5                 ADC5 -    4,  // A3               PF4                 ADC4 -    1,  // A4               PF1                 ADC1 -    0,  // A5               PF0                 ADC0 -    8,  // A6       D4      PD4                 ADC8 -    10, // A7       D6      PD7                 ADC10 -    11, // A8       D8      PB4                 ADC11 -    12, // A9       D9      PB5                 ADC12 -    13, // A10      D10     PB6                 ADC13 -    9   // A11      D12     PD6                 ADC9 +    7,   // A0               PF7                 ADC7 +    6,   // A1               PF6                 ADC6 +    5,   // A2               PF5                 ADC5 +    4,   // A3               PF4                 ADC4 +    1,   // A4               PF1                 ADC1 +    0,   // A5               PF0                 ADC0 +    8,   // A6       D4      PD4                 ADC8 +    10,  // A7       D6      PD7                 ADC10 +    11,  // A8       D8      PB4                 ADC11 +    12,  // A9       D9      PB5                 ADC12 +    13,  // A10      D10     PB6                 ADC13 +    9    // A11      D12     PD6                 ADC9  };  #endif /* ARDUINO_MAIN */ @@ -354,9 +316,9 @@ const uint8_t PROGMEM analog_pin_to_channel_PGM[] = {  //  // SERIAL_PORT_HARDWARE_OPEN  Hardware serial ports which are open for use.  Their RX & TX  //                            pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR        Serial -#define SERIAL_PORT_USBVIRTUAL     Serial -#define SERIAL_PORT_HARDWARE       Serial1 -#define SERIAL_PORT_HARDWARE_OPEN  Serial1 +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1  #endif /* Pins_Arduino_h */ | 
