AEM
yspi.h
Go to the documentation of this file.
1 #ifndef YSPI_H
2 #define YSPI_H
3 
4 
5 #include <Arduino.h>
6 
7 #include <SPI.h>
8 
9 #include "config.h"
10 
34 class YSPI{
35  public:
40  virtual void setSS(uint8_t highLow) const = 0;
44  virtual void beginTransaction() const = 0;
50  virtual uint8_t transfer (uint8_t data) const = 0;
54  virtual void endTransaction() const = 0;
55 };
56 
57 class HWSPI : public YSPI{
58  protected:
59  const uint8_t SS;
60  const SPISettings settings;
62  public:
71  HWSPI( uint8_t SSpin,
72  uint32_t clockF,
73  uint8_t bitOrder,
74  uint8_t dataMode);
75 
79  virtual void setSS(uint8_t highLow) const;
83  virtual void beginTransaction() const;
87  virtual uint8_t transfer (uint8_t data) const;
91  virtual void endTransaction() const;
92 };
93 
94 
95 class USARTSPI : public YSPI{
96  protected:
103  volatile uint8_t &udr,
104  &ucsrA,
105  &ucsrB,
106  &ucsrC;
107  volatile uint16_t &ubrr;
108  };
114  volatile uint8_t &io,
115  &set;
116  };
117 
135  const uint8_t udre,
136  rxc,
137  txc,
138  ddCLK,
139  ddSS,
140  umsel0,
141  umsel1,
142  txen,
143  rxen,
144  portSS;
145  };
150  static const usartRegisterStruct usartRegVec[];
155  static const pinRegisterStruct pinRegVec[];
160  static const uartSpecificBitValueStruct specificBitVec[];
161 
167  const uint8_t uID;
168 
169  public:
174  static const uint8_t nbUARTS;
175 
182  USARTSPI(uint8_t id);
186  virtual void setSS(uint8_t highLow) const;
190  virtual void beginTransaction() const;
194  virtual uint8_t transfer (uint8_t data) const;
198  virtual void endTransaction() const;
199 };
200 #endif
201 
202 
static const uint8_t nbUARTS
Definition: yspi.h:174
virtual void endTransaction() const =0
volatile uint8_t & udr
Definition: yspi.h:103
const uint8_t SS
Definition: yspi.h:59
virtual void beginTransaction() const =0
Definition: yspi.h:113
Definition: yspi.h:95
Definition: yspi.h:102
const uint8_t uID
Definition: yspi.h:167
Definition: yspi.h:34
Definition: yspi.h:57
const uint8_t umsel1
Definition: yspi.h:135
virtual void setSS(uint8_t highLow) const =0
virtual uint8_t transfer(uint8_t data) const =0
volatile uint16_t & ubrr
Definition: yspi.h:107
const SPISettings settings
Definition: yspi.h:60