Fixing SPI double-speed bug.

Bad bit manipulation was causing the double-speed flag to be set incorrectly.
http://code.google.com/p/arduino/issues/detail?id=365
This commit is contained in:
David A. Mellis 2010-10-04 21:19:03 -04:00
parent 224a7bf768
commit b24895385a
1 changed files with 1 additions and 1 deletions

View File

@ -56,6 +56,6 @@ void SPIClass::setDataMode(uint8_t mode)
void SPIClass::setClockDivider(uint8_t rate)
{
SPCR = (SPCR & ~SPI_CLOCK_MASK) | (rate & SPI_CLOCK_MASK);
SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | (rate & SPI_2XCLOCK_MASK);
SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((rate >> 2) & SPI_2XCLOCK_MASK);
}