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
#include "../inout/inout.h"
#include <avr/io.h>
class SPI {
namespace spi {
class Spi {
public:
enum class ClockDiv {
CLKDIV_4 = 0,
@ -48,13 +51,13 @@ class SPI {
};
//////////////////////////////////////////////////////////////////////////
InOutPin SPI::sm_cSCK;
InOutPin SPI::sm_cMISO;
InOutPin SPI::sm_cMOSI;
InOutPin SPI::sm_cSS;
InOutPin Spi::sm_cSCK;
InOutPin Spi::sm_cMISO;
InOutPin Spi::sm_cMOSI;
InOutPin Spi::sm_cSS;
//////////////////////////////////////////////////////////////////////////
void SPI::setCPOL(bool bCPOL)
void Spi::setCPOL(bool bCPOL)
{
if (bCPOL) {
SPCR |= (1 << CPOL);
@ -64,7 +67,7 @@ void SPI::setCPOL(bool bCPOL)
}
//////////////////////////////////////////////////////////////////////////
void SPI::setCPHA(bool bCPHA)
void Spi::setCPHA(bool bCPHA)
{
if (bCPHA) {
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 */)
{
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;
@ -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);
@ -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) {
setCPOL(false);
@ -156,7 +159,7 @@ void SPI::setMode(Mode enmMode)
}
//////////////////////////////////////////////////////////////////////////
void SPI::setMaster(bool bMaster)
void Spi::setMaster(bool bMaster)
{
if (bMaster) {
SPCR |= (1 << MSTR);
@ -166,7 +169,7 @@ void SPI::setMaster(bool bMaster)
}
//////////////////////////////////////////////////////////////////////////
void SPI::setBitOrder(bool bLSBFirst)
void Spi::setBitOrder(bool bLSBFirst)
{
if (bLSBFirst) {
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;
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);
}
} // namespace spi