SPISettings.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * SPISettings.h
8  *
9  * Created on: Mar 2, 2016
10  * Author: harry
11  *
12  ****/
13 
14 #pragma once
15 
16 #include "Digital.h"
17 
22 // Mode Clock Polarity (CPOL) Clock Phase (CPHA)
23 // SPI_MODE0 0 0
24 // SPI_MODE1 0 1
25 // SPI_MODE2 1 0
26 // SPI_MODE3 1 1
27 
28 #define SPI_MODE0 0x00
29 #define SPI_MODE1 0x0F
30 #define SPI_MODE2 0xF0
31 #define SPI_MODE3 0xFF
32 
34 {
35 public:
37  {
38 #ifdef SPI_DEBUG
39  debugf("SPISettings() default");
40 #endif
41  }
42 
43  virtual ~SPISettings()
44  {
45  }
46 
71  SPISettings(int speed, uint8_t byteOrder, uint8_t dataMode) : speed(speed), byteOrder(byteOrder), dataMode(dataMode)
72  {
73 #ifdef SPI_DEBUG
74  debugf("SPISettings(int %i, uint8 %d, uint8 %d)", speed, byteOrder, dataMode);
75 #endif
76  }
77 
78  inline uint8_t getDataMode()
79  {
80  return dataMode;
81  }
82 
83  // overload operator to check wheter the settings are equal
84  bool operator==(const SPISettings& other) const
85  {
86  return (speed == other.speed) && (byteOrder == other.byteOrder) && (dataMode == other.dataMode);
87  }
88 
89  void print(const char* s)
90  {
91 #ifdef SPI_DEBUG
92  debugf("-> %s -> SPISettings::print(int %i, uint8 %d, uint8 %d)", s, speed, byteOrder, dataMode);
93 #endif
94  }
95 
96  friend class SPIClass;
97 
98 private:
99  int speed = 4000000;
100  uint8_t byteOrder = MSBFIRST;
101  uint8_t dataMode = SPI_MODE0;
102 };
103 
#define SPI_MODE0
Definition: SPISettings.h:28
Definition: SPISettings.h:33
#define MSBFIRST
Definition: WConstants.h:61
SPISettings()
Definition: SPISettings.h:36
virtual ~SPISettings()
Definition: SPISettings.h:43
Definition: SPI.h:35
void print(const char *s)
Definition: SPISettings.h:89
bool operator==(const SPISettings &other) const
Definition: SPISettings.h:84
#define debugf
Definition: debug_progmem.h:127
uint8_t getDataMode()
Definition: SPISettings.h:78
SPISettings(int speed, uint8_t byteOrder, uint8_t dataMode)
constructor for SPISettings
Definition: SPISettings.h:71