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