From 7e75870756cd642857d98352ad8bb0662ec42387 Mon Sep 17 00:00:00 2001 From: Jonathan BAUDIN <jonathan.baudin@atmel.com> Date: Wed, 7 May 2014 16:02:25 +0200 Subject: [PATCH] Correction compilation errors. --- cores/arduino/SERCOM.h | 8 ++++---- libraries/SPI/SPI.cpp | 24 ++++++++++++------------ libraries/SPI/SPI.h | 10 ++++++++-- libraries/Wire/Wire.cpp | 4 ++-- libraries/Wire/Wire.h | 4 ++-- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/cores/arduino/SERCOM.h b/cores/arduino/SERCOM.h index 12dc5c7f..98bf6f46 100644 --- a/cores/arduino/SERCOM.h +++ b/cores/arduino/SERCOM.h @@ -76,10 +76,10 @@ typedef enum typedef enum { - SPI_MODE_0 = 0, // CPOL : 0 | CPHA : 0 - SPI_MODE_1, // CPOL : 0 | CPHA : 1 - SPI_MODE_2, // CPOL : 1 | CPHA : 0 - SPI_MODE_3 // CPOL : 1 | CPHA : 1 + SERCOM_SPI_MODE_0 = 0, // CPOL : 0 | CPHA : 0 + SERCOM_SPI_MODE_1, // CPOL : 0 | CPHA : 1 + SERCOM_SPI_MODE_2, // CPOL : 1 | CPHA : 0 + SERCOM_SPI_MODE_3 // CPOL : 1 | CPHA : 1 } SercomSpiClockMode; typedef enum diff --git a/libraries/SPI/SPI.cpp b/libraries/SPI/SPI.cpp index a2a55c83..76292014 100644 --- a/libraries/SPI/SPI.cpp +++ b/libraries/SPI/SPI.cpp @@ -10,22 +10,22 @@ #include "SPI.h" -SPIClass::SPIClass(SERCOM *sercom) +SPIClass::SPIClass(SERCOM *s) { - this->sercom = sercom; + sercom = s; } void SPIClass::begin() { // Default speed set to 4Mhz, SPI mode set to MODE 0 and Bit order set to MSB first. - sercom->initSPI(PAD_0_SCK_1, PAD_2, 8_BITS, MSB_FIRST); - sercom->initClock(MODE_0, 4000000); + sercom->initSPI(SPI_PAD_0_SCK_1, SERCOM_RX_PAD_2, SPI_CHAR_SIZE_8_BITS, MSB_FIRST); + sercom->initClock(SERCOM_SPI_MODE_0, 4000000); } void SPIClass::end() { sercom->resetSPI(); } -void setBitOrder(BitOrder order) +void SPIClass::setBitOrder(BitOrder order) { if(order == LSBFIRST) sercom->setDataOrderSPI(LSB_FIRST); @@ -33,24 +33,24 @@ void setBitOrder(BitOrder order) sercom->setDataOrderSPI(MSB_FIRST); } -void setDataMode(uint8_t mode) +void SPIClass::setDataMode(uint8_t mode) { switch(mode) { case SPI_MODE0: - sercom->setClockModeSPI(MODE_0); + sercom->setClockModeSPI(SERCOM_SPI_MODE_0); break; case SPI_MODE1: - sercom->setClockModeSPI(MODE_1); + sercom->setClockModeSPI(SERCOM_SPI_MODE_1); break; case SPI_MODE2: - sercom->setClockModeSPI(MODE_2); + sercom->setClockModeSPI(SERCOM_SPI_MODE_2); break; case SPI_MODE3: - sercom->setClockModeSPI(MODE_3); + sercom->setClockModeSPI(SERCOM_SPI_MODE_3); break; default: @@ -58,12 +58,12 @@ void setDataMode(uint8_t mode) } } -void setClockDivider(uint8_t div) +void SPIClass::setClockDivider(uint8_t div) { sercom->setBaudrateSPI(div); } -byte SPIClass::transfer(uint8_t _data) +byte SPIClass::transfer(uint8_t data) { //Can writing new data? while(!sercom->isDataRegisterEmptySPI()); diff --git a/libraries/SPI/SPI.h b/libraries/SPI/SPI.h index 9f3830bf..195723a7 100644 --- a/libraries/SPI/SPI.h +++ b/libraries/SPI/SPI.h @@ -13,14 +13,20 @@ #include "variant.h" #include "SERCOM.h" +#include "wiring_constants.h" #include <stdio.h> +#define SPI_MODE0 0x02 +#define SPI_MODE1 0x00 +#define SPI_MODE2 0x03 +#define SPI_MODE3 0x01 + class SPIClass { public: - SPIClass(SERCOM *sercom); + SPIClass(SERCOM *s); - byte transfer(uint8_t _data); + byte transfer(uint8_t data); // SPI Configuration methods void attachInterrupt(); diff --git a/libraries/Wire/Wire.cpp b/libraries/Wire/Wire.cpp index e64d47f1..8f830527 100644 --- a/libraries/Wire/Wire.cpp +++ b/libraries/Wire/Wire.cpp @@ -24,9 +24,9 @@ extern "C" { #include "Wire.h" -TwoWire::TwoWire(SERCOM * sercom) +TwoWire::TwoWire(SERCOM * s) { - this->sercom = sercom; + this->sercom = s; transmissionBegun = false; } diff --git a/libraries/Wire/Wire.h b/libraries/Wire/Wire.h index c8d3200c..3e3a755e 100644 --- a/libraries/Wire/Wire.h +++ b/libraries/Wire/Wire.h @@ -21,7 +21,7 @@ #ifndef TwoWire_h #define TwoWire_h -#include <include/twi.h> +//#include <include/twi.h> #include "Stream.h" #include "variant.h" @@ -33,7 +33,7 @@ class TwoWire : public Stream { public: - TwoWire(SERCOM *sercom); + TwoWire(SERCOM *s); void begin(); void begin(uint8_t); -- GitLab