Fixing SD card SPI pin mapping for Leonardo.

http://code.google.com/p/arduino/issues/detail?id=931
This commit is contained in:
David A. Mellis 2012-06-22 11:28:16 -05:00
parent 4b25cc2097
commit 34b265ed4c
1 changed files with 31 additions and 32 deletions

View File

@ -166,44 +166,43 @@ static const pin_map_t digitalPinMap[] = {
}; };
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
#elif defined(__AVR_ATmega32U4__) #elif defined(__AVR_ATmega32U4__)
// Teensy 2.0 // Leonardo
// Two Wire (aka I2C) ports // Two Wire (aka I2C) ports
uint8_t const SDA_PIN = 6; uint8_t const SDA_PIN = 2;
uint8_t const SCL_PIN = 5; uint8_t const SCL_PIN = 3;
// SPI port // SPI port
uint8_t const SS_PIN = 0; uint8_t const SS_PIN = 17;
uint8_t const MOSI_PIN = 2; uint8_t const MOSI_PIN = 16;
uint8_t const MISO_PIN = 3; uint8_t const MISO_PIN = 14;
uint8_t const SCK_PIN = 1; uint8_t const SCK_PIN = 15;
static const pin_map_t digitalPinMap[] = { static const pin_map_t digitalPinMap[] = {
{&DDRB, &PINB, &PORTB, 0}, // B0 0 {&DDRD, &PIND, &PORTD, 2}, // D2 0
{&DDRB, &PINB, &PORTB, 1}, // B1 1 {&DDRD, &PIND, &PORTD, 3}, // D3 1
{&DDRB, &PINB, &PORTB, 2}, // B2 2 {&DDRD, &PIND, &PORTD, 1}, // D1 2
{&DDRB, &PINB, &PORTB, 3}, // B3 3 {&DDRD, &PIND, &PORTD, 0}, // D0 3
{&DDRB, &PINB, &PORTB, 7}, // B7 4 {&DDRD, &PIND, &PORTD, 4}, // D4 4
{&DDRD, &PIND, &PORTD, 0}, // D0 5 {&DDRC, &PINC, &PORTC, 6}, // C6 5
{&DDRD, &PIND, &PORTD, 1}, // D1 6 {&DDRD, &PIND, &PORTD, 7}, // D7 6
{&DDRD, &PIND, &PORTD, 2}, // D2 7 {&DDRE, &PINE, &PORTE, 6}, // E6 7
{&DDRD, &PIND, &PORTD, 3}, // D3 8 {&DDRB, &PINB, &PORTB, 4}, // B4 8
{&DDRC, &PINC, &PORTC, 6}, // C6 9 {&DDRB, &PINB, &PORTB, 5}, // B5 9
{&DDRC, &PINC, &PORTC, 7}, // C7 10 {&DDRB, &PINB, &PORTB, 6}, // B6 10
{&DDRD, &PIND, &PORTD, 6}, // D6 11 {&DDRB, &PINB, &PORTB, 7}, // B7 11
{&DDRD, &PIND, &PORTD, 7}, // D7 12 {&DDRD, &PIND, &PORTD, 6}, // D6 12
{&DDRB, &PINB, &PORTB, 4}, // B4 13 {&DDRC, &PINC, &PORTC, 7}, // C7 13
{&DDRB, &PINB, &PORTB, 5}, // B5 14 {&DDRB, &PINB, &PORTB, 3}, // B3 14
{&DDRB, &PINB, &PORTB, 6}, // B6 15 {&DDRB, &PINB, &PORTB, 1}, // B1 15
{&DDRF, &PINF, &PORTF, 7}, // F7 16 {&DDRB, &PINB, &PORTB, 2}, // B2 16
{&DDRF, &PINF, &PORTF, 6}, // F6 17 {&DDRB, &PINB, &PORTB, 0}, // B0 17
{&DDRF, &PINF, &PORTF, 5}, // F5 18 {&DDRF, &PINF, &PORTF, 7}, // F7 18
{&DDRF, &PINF, &PORTF, 4}, // F4 19 {&DDRF, &PINF, &PORTF, 6}, // F6 19
{&DDRF, &PINF, &PORTF, 1}, // F1 20 {&DDRF, &PINF, &PORTF, 5}, // F5 20
{&DDRF, &PINF, &PORTF, 0}, // F0 21 {&DDRF, &PINF, &PORTF, 4}, // F4 21
{&DDRD, &PIND, &PORTD, 4}, // D4 22 {&DDRF, &PINF, &PORTF, 1}, // F1 22
{&DDRD, &PIND, &PORTD, 5}, // D5 23 {&DDRF, &PINF, &PORTF, 0}, // F0 23
{&DDRE, &PINE, &PORTE, 6} // E6 24
}; };
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) #elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)