Added namespace and renamed class

This commit is contained in:
BlackMark 2020-02-21 16:49:22 +01:00
parent 9735d4e86a
commit aa78ced242

35
spi.hpp
View File

@ -1,9 +1,12 @@
#pragma once #pragma once
#include "../inout/inout.h" #include "../inout/inout.h"
#include <avr/io.h> #include <avr/io.h>
class SPI { namespace spi {
class Spi {
public: public:
enum class ClockDiv { enum class ClockDiv {
CLKDIV_4 = 0, CLKDIV_4 = 0,
@ -48,13 +51,13 @@ class SPI {
}; };
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
InOutPin SPI::sm_cSCK; InOutPin Spi::sm_cSCK;
InOutPin SPI::sm_cMISO; InOutPin Spi::sm_cMISO;
InOutPin SPI::sm_cMOSI; InOutPin Spi::sm_cMOSI;
InOutPin SPI::sm_cSS; InOutPin Spi::sm_cSS;
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setCPOL(bool bCPOL) void Spi::setCPOL(bool bCPOL)
{ {
if (bCPOL) { if (bCPOL) {
SPCR |= (1 << CPOL); SPCR |= (1 << CPOL);
@ -64,7 +67,7 @@ void SPI::setCPOL(bool bCPOL)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setCPHA(bool bCPHA) void Spi::setCPHA(bool bCPHA)
{ {
if (bCPHA) { if (bCPHA) {
SPCR |= (1 << CPHA); SPCR |= (1 << CPHA);
@ -74,7 +77,7 @@ void SPI::setCPHA(bool bCPHA)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::init(ClockDiv enmClockDiv /* = ClockDiv::CLKDIV_128 */, Mode enmMode /* = Mode::MODE_0 */, void Spi::init(ClockDiv enmClockDiv /* = ClockDiv::CLKDIV_128 */, Mode enmMode /* = Mode::MODE_0 */,
bool bMaster /* = true */, bool bLSBFirst /* = false */, bool bMISOPullup /* = false */) bool bMaster /* = true */, bool bLSBFirst /* = false */, bool bMISOPullup /* = false */)
{ {
sm_cSCK.setPin(sm_enmSCK); sm_cSCK.setPin(sm_enmSCK);
@ -105,7 +108,7 @@ void SPI::init(ClockDiv enmClockDiv /* = ClockDiv::CLKDIV_128 */, Mode enmMode /
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::deinit() void Spi::deinit()
{ {
SPCR = 0; SPCR = 0;
@ -116,7 +119,7 @@ void SPI::deinit()
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setClockDiv(ClockDiv enmClockDiv) void Spi::setClockDiv(ClockDiv enmClockDiv)
{ {
uint8_t ui8ClockDiv = static_cast<uint8_t>(enmClockDiv); uint8_t ui8ClockDiv = static_cast<uint8_t>(enmClockDiv);
@ -140,7 +143,7 @@ void SPI::setClockDiv(ClockDiv enmClockDiv)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setMode(Mode enmMode) void Spi::setMode(Mode enmMode)
{ {
if (enmMode == Mode::MODE_0 || enmMode == Mode::MODE_1) { if (enmMode == Mode::MODE_0 || enmMode == Mode::MODE_1) {
setCPOL(false); setCPOL(false);
@ -156,7 +159,7 @@ void SPI::setMode(Mode enmMode)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setMaster(bool bMaster) void Spi::setMaster(bool bMaster)
{ {
if (bMaster) { if (bMaster) {
SPCR |= (1 << MSTR); SPCR |= (1 << MSTR);
@ -166,7 +169,7 @@ void SPI::setMaster(bool bMaster)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::setBitOrder(bool bLSBFirst) void Spi::setBitOrder(bool bLSBFirst)
{ {
if (bLSBFirst) { if (bLSBFirst) {
SPCR |= (1 << DORD); SPCR |= (1 << DORD);
@ -176,7 +179,7 @@ void SPI::setBitOrder(bool bLSBFirst)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
uint8_t SPI::transfer(uint8_t ui8Data) uint8_t Spi::transfer(uint8_t ui8Data)
{ {
SPDR = ui8Data; SPDR = ui8Data;
while (!(SPSR & (1 << SPIF))) while (!(SPSR & (1 << SPIF)))
@ -185,7 +188,9 @@ uint8_t SPI::transfer(uint8_t ui8Data)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
void SPI::select(bool bSelect) void Spi::select(bool bSelect)
{ {
sm_cSS.write(!bSelect); sm_cSS.write(!bSelect);
} }
} // namespace spi