Skip to content
Snippets Groups Projects
Commit 7e758707 authored by Jonathan BAUDIN's avatar Jonathan BAUDIN
Browse files

Correction compilation errors.

parent 97de098b
No related branches found
No related tags found
No related merge requests found
...@@ -76,10 +76,10 @@ typedef enum ...@@ -76,10 +76,10 @@ typedef enum
typedef enum typedef enum
{ {
SPI_MODE_0 = 0, // CPOL : 0 | CPHA : 0 SERCOM_SPI_MODE_0 = 0, // CPOL : 0 | CPHA : 0
SPI_MODE_1, // CPOL : 0 | CPHA : 1 SERCOM_SPI_MODE_1, // CPOL : 0 | CPHA : 1
SPI_MODE_2, // CPOL : 1 | CPHA : 0 SERCOM_SPI_MODE_2, // CPOL : 1 | CPHA : 0
SPI_MODE_3 // CPOL : 1 | CPHA : 1 SERCOM_SPI_MODE_3 // CPOL : 1 | CPHA : 1
} SercomSpiClockMode; } SercomSpiClockMode;
typedef enum typedef enum
......
...@@ -10,22 +10,22 @@ ...@@ -10,22 +10,22 @@
#include "SPI.h" #include "SPI.h"
SPIClass::SPIClass(SERCOM *sercom) SPIClass::SPIClass(SERCOM *s)
{ {
this->sercom = sercom; sercom = s;
} }
void SPIClass::begin() { void SPIClass::begin() {
// Default speed set to 4Mhz, SPI mode set to MODE 0 and Bit order set to MSB first. // 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->initSPI(SPI_PAD_0_SCK_1, SERCOM_RX_PAD_2, SPI_CHAR_SIZE_8_BITS, MSB_FIRST);
sercom->initClock(MODE_0, 4000000); sercom->initClock(SERCOM_SPI_MODE_0, 4000000);
} }
void SPIClass::end() { void SPIClass::end() {
sercom->resetSPI(); sercom->resetSPI();
} }
void setBitOrder(BitOrder order) void SPIClass::setBitOrder(BitOrder order)
{ {
if(order == LSBFIRST) if(order == LSBFIRST)
sercom->setDataOrderSPI(LSB_FIRST); sercom->setDataOrderSPI(LSB_FIRST);
...@@ -33,24 +33,24 @@ void setBitOrder(BitOrder order) ...@@ -33,24 +33,24 @@ void setBitOrder(BitOrder order)
sercom->setDataOrderSPI(MSB_FIRST); sercom->setDataOrderSPI(MSB_FIRST);
} }
void setDataMode(uint8_t mode) void SPIClass::setDataMode(uint8_t mode)
{ {
switch(mode) switch(mode)
{ {
case SPI_MODE0: case SPI_MODE0:
sercom->setClockModeSPI(MODE_0); sercom->setClockModeSPI(SERCOM_SPI_MODE_0);
break; break;
case SPI_MODE1: case SPI_MODE1:
sercom->setClockModeSPI(MODE_1); sercom->setClockModeSPI(SERCOM_SPI_MODE_1);
break; break;
case SPI_MODE2: case SPI_MODE2:
sercom->setClockModeSPI(MODE_2); sercom->setClockModeSPI(SERCOM_SPI_MODE_2);
break; break;
case SPI_MODE3: case SPI_MODE3:
sercom->setClockModeSPI(MODE_3); sercom->setClockModeSPI(SERCOM_SPI_MODE_3);
break; break;
default: default:
...@@ -58,12 +58,12 @@ void setDataMode(uint8_t mode) ...@@ -58,12 +58,12 @@ void setDataMode(uint8_t mode)
} }
} }
void setClockDivider(uint8_t div) void SPIClass::setClockDivider(uint8_t div)
{ {
sercom->setBaudrateSPI(div); sercom->setBaudrateSPI(div);
} }
byte SPIClass::transfer(uint8_t _data) byte SPIClass::transfer(uint8_t data)
{ {
//Can writing new data? //Can writing new data?
while(!sercom->isDataRegisterEmptySPI()); while(!sercom->isDataRegisterEmptySPI());
......
...@@ -13,14 +13,20 @@ ...@@ -13,14 +13,20 @@
#include "variant.h" #include "variant.h"
#include "SERCOM.h" #include "SERCOM.h"
#include "wiring_constants.h"
#include <stdio.h> #include <stdio.h>
#define SPI_MODE0 0x02
#define SPI_MODE1 0x00
#define SPI_MODE2 0x03
#define SPI_MODE3 0x01
class SPIClass { class SPIClass {
public: public:
SPIClass(SERCOM *sercom); SPIClass(SERCOM *s);
byte transfer(uint8_t _data); byte transfer(uint8_t data);
// SPI Configuration methods // SPI Configuration methods
void attachInterrupt(); void attachInterrupt();
......
...@@ -24,9 +24,9 @@ extern "C" { ...@@ -24,9 +24,9 @@ extern "C" {
#include "Wire.h" #include "Wire.h"
TwoWire::TwoWire(SERCOM * sercom) TwoWire::TwoWire(SERCOM * s)
{ {
this->sercom = sercom; this->sercom = s;
transmissionBegun = false; transmissionBegun = false;
} }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#ifndef TwoWire_h #ifndef TwoWire_h
#define TwoWire_h #define TwoWire_h
#include <include/twi.h> //#include <include/twi.h>
#include "Stream.h" #include "Stream.h"
#include "variant.h" #include "variant.h"
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
class TwoWire : public Stream { class TwoWire : public Stream {
public: public:
TwoWire(SERCOM *sercom); TwoWire(SERCOM *s);
void begin(); void begin();
void begin(uint8_t); void begin(uint8_t);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment