Completely separted driver from interface
This commit is contained in:
parent
c73d83dff4
commit
4b644b22bf
13
hardware.hpp
13
hardware.hpp
@ -33,6 +33,19 @@ class Hardware {
|
||||
SPCR |= (1 << SPE);
|
||||
}
|
||||
|
||||
static uint8_t transfer(uint8_t data)
|
||||
{
|
||||
SPDR = data;
|
||||
while (!(SPSR & (1 << SPIF)))
|
||||
;
|
||||
return SPDR;
|
||||
}
|
||||
|
||||
static void select(bool selectState)
|
||||
{
|
||||
sm_ss = !selectState;
|
||||
}
|
||||
|
||||
private:
|
||||
static io::Pin<io::P::B5> sm_sck;
|
||||
static io::Pin<io::P::B4> sm_miso;
|
||||
|
11
spi.hpp
11
spi.hpp
@ -17,22 +17,15 @@ class Spi {
|
||||
|
||||
static uint8_t transfer(uint8_t ui8Data)
|
||||
{
|
||||
SPDR = ui8Data;
|
||||
while (!(SPSR & (1 << SPIF)))
|
||||
;
|
||||
return SPDR;
|
||||
return Driver::transfer(ui8Data);
|
||||
}
|
||||
|
||||
static void select(bool bSelect)
|
||||
{
|
||||
sm_cSS.write(!bSelect);
|
||||
Driver::select(bSelect);
|
||||
}
|
||||
|
||||
private:
|
||||
static io::Pin<io::P::B5> sm_cSCK;
|
||||
static io::Pin<io::P::B4> sm_cMISO;
|
||||
static io::Pin<io::P::B3> sm_cMOSI;
|
||||
static io::Pin<io::P::B2> sm_cSS;
|
||||
};
|
||||
|
||||
} // namespace spi
|
||||
|
Loading…
Reference in New Issue
Block a user