3 #include "../stream/stream.h" 5 #include <avr/interrupt.h> 23 volatile uint8_t *
ddr;
35 PIN(
volatile uint8_t *port,
volatile uint8_t *ddr, uint8_t pin): port(port), ddr(ddr), pin(pin){}
42 PIN(): port(nullptr), ddr(nullptr), pin(0){}
48 PIN newPin(original_pin->
port, original_pin->
ddr, original_pin->
pin);
71 void InitializeTransmission();
76 volatile bool ongoing_transmission =
false;
81 uint8_t throw_away_data_count = 0;
124 void Initialize(
PIN *pins, uint8_t number_of_pins,
bool clock_polarity_falling,
bool clock_phase_trailing);
131 void WriteByte(uint8_t byte,
bool wait);
138 void WriteByteAndThrowAwayData(uint8_t byte,
bool wait);
This class is an interface for implementing a duplex FIFO stream.
Definition: stream.h:19
PIN current_pin
Definition: spi.h:143
static SPI & GetInstance()
Definition: spi.h:94
A struct which holds the information about a pin. Used in order to pass pin information.
Definition: spi.h:14
PIN(volatile uint8_t *port, volatile uint8_t *ddr, uint8_t pin)
Definition: spi.h:35
void SPI_STC_vect()
Definition: spi.cpp:6
PIN operator=(PIN *original_pin)
Definition: spi.h:47
A namespace containing everything related to the SPI driver.
Definition: spi.cpp:4
PIN()
Definition: spi.h:42
volatile uint8_t * ddr
Definition: spi.h:23
volatile uint8_t * port
Definition: spi.h:19
uint8_t pin
Definition: spi.h:27