31 lines
747 B
C++
31 lines
747 B
C++
#pragma once
|
|
#include <avr/io.h>
|
|
#include <stdint.h>
|
|
|
|
class SpiMaster
|
|
{
|
|
private:
|
|
|
|
static constexpr uint8_t CLOCK_POLARITY = 1;
|
|
static constexpr uint8_t CLOCK_PHASE = 1;
|
|
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 = PB0;
|
|
static constexpr uint8_t _pinClock = PB3;
|
|
|
|
static constexpr uint8_t DELAY_TIME_US = 10;
|
|
|
|
|
|
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);
|
|
};
|