From b24895385a7fda09145da2fc95de099696ee4f4f Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Mon, 4 Oct 2010 21:19:03 -0400 Subject: [PATCH] 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 --- libraries/SPI/SPI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/SPI/SPI.cpp b/libraries/SPI/SPI.cpp index 52cb203d9..42915df1e 100644 --- a/libraries/SPI/SPI.cpp +++ b/libraries/SPI/SPI.cpp @@ -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); }