#pragma once #include #include class SpiMaster { private: static constexpr uint8_t CLOCK_POLARITY = 0; static constexpr uint8_t CLOCK_PHASE = 2; static constexpr uint8_t BIT_ORDER = 1; volatile uint8_t * const _port = &PORTB; volatile uint8_t * const _pinReg = &PINB; static constexpr uint8_t _pinIn = PB2; static constexpr uint8_t _pinOut = PB4; static constexpr uint8_t _pinClock = PB3; static constexpr uint8_t DELAY_TIME_US = 0; public: SpiMaster(); void readWrite(uint8_t length, uint8_t* bufferIn, uint8_t* bufferOut); uint8_t readWrite(uint8_t in = 0); void prepare(); uint8_t read(); void write(uint8_t in); };