Soldered SD Card Arduino Library 1.0.0
Easily read and write files to and form the SD card breakout! A fork of the original SDFat library by Bill Greiman.
Loading...
Searching...
No Matches
SoftSPI< MisoPin, MosiPin, SckPin, Mode > Class Template Reference

Fast software SPI. More...

#include <SoftSPI.h>

Public Member Functions

void begin ()
 
 __attribute__ ((always_inline)) uint8_t receive()
 
 __attribute__ ((always_inline)) void send(uint8_t data)
 
 __attribute__ ((always_inline)) uint8_t transfer(uint8_t txData)
 

Private Member Functions

 __attribute__ ((always_inline)) bool MODE_CPHA(uint8_t mode)
 
 __attribute__ ((always_inline)) bool MODE_CPOL(uint8_t mode)
 
 __attribute__ ((always_inline)) void receiveBit(uint8_t bit
 
 fastDigitalWrite (SckPin, MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode))
 
 if (fastDigitalRead(MisoPin)) *data|
 
 if (!MODE_CPHA(Mode))
 
 __attribute__ ((always_inline)) void sendBit(uint8_t bit
 
 fastDigitalWrite (SckPin, MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode))
 
 if (!MODE_CPHA(Mode))
 
 __attribute__ ((always_inline)) void transferBit(uint8_t bit
 
 fastDigitalWrite (SckPin, MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode))
 
 if (fastDigitalRead(MisoPin)) *rxData|
 
 if (!MODE_CPHA(Mode))
 

Private Attributes

uint8_t * data
 
 nop
 
uint8_t data
 
uint8_t * rxData
 
uint8_t uint8_t txData
 

Detailed Description

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
class SoftSPI< MisoPin, MosiPin, SckPin, Mode >

Fast software SPI.

Member Function Documentation

◆ __attribute__() [1/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inlineprivate

◆ __attribute__() [2/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inlineprivate

◆ __attribute__() [3/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inline

Soft SPI receive byte.

Returns
Data byte received.

◆ __attribute__() [4/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inline

Soft SPI transfer byte.

Parameters
[in]txDataData byte to send.
Returns
Data byte received.

◆ __attribute__() [5/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inlineprivate

◆ __attribute__() [6/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inline

Soft SPI send byte.

Parameters
[in]dataData byte to send.

◆ __attribute__() [7/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inlineprivate

◆ __attribute__() [8/8]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::__attribute__ ( (always_inline)  )
inlineprivate

◆ begin()

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
void SoftSPI< MisoPin, MosiPin, SckPin, Mode >::begin ( )
inline

Initialize SoftSPI pins.

◆ fastDigitalWrite() [1/3]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::fastDigitalWrite ( SckPin  ,
MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode)   
)
private

◆ fastDigitalWrite() [2/3]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::fastDigitalWrite ( SckPin  ,
MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode)   
)
private

◆ fastDigitalWrite() [3/3]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::fastDigitalWrite ( SckPin  ,
MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode)   
)
private

◆ if() [1/5]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::if ( MODE_CPHAMode)
inlineprivate

◆ if() [2/5]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::if ( MODE_CPHAMode)
inlineprivate

◆ if() [3/5]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::if ( MODE_CPHAMode)
inlineprivate

◆ if() [4/5]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::if ( fastDigitalRead(MisoPin)  )
private

◆ if() [5/5]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::if ( fastDigitalRead(MisoPin)  )
private

Member Data Documentation

◆ data [1/2]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
uint8_t* SoftSPI< MisoPin, MosiPin, SckPin, Mode >::data
private
Initial value:
{
if (MODE_CPHA(Mode))
{
fastDigitalWrite(SckPin, !MODE_CPOL(Mode));
}
nop
Definition SoftSPI.h:127
fastDigitalWrite(SckPin, MODE_CPHA(Mode) ? MODE_CPOL(Mode) :!MODE_CPOL(Mode))

◆ data [2/2]

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
uint8_t SoftSPI< MisoPin, MosiPin, SckPin, Mode >::data
private
Initial value:
{
if (MODE_CPHA(Mode))
{
fastDigitalWrite(SckPin, !MODE_CPOL(Mode));
}
fastDigitalWrite(MosiPin, data & (1 << bit))
uint8_t * data
Definition SoftSPI.h:121

◆ nop

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
SoftSPI< MisoPin, MosiPin, SckPin, Mode >::nop
private

◆ rxData

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
uint8_t* SoftSPI< MisoPin, MosiPin, SckPin, Mode >::rxData
private

◆ txData

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin, uint8_t Mode = 0>
uint8_t uint8_t SoftSPI< MisoPin, MosiPin, SckPin, Mode >::txData
private
Initial value:
{
if (MODE_CPHA(Mode))
{
fastDigitalWrite(SckPin, !MODE_CPOL(Mode));
}
fastDigitalWrite(MosiPin, txData & (1 << bit))
uint8_t uint8_t txData
Definition SoftSPI.h:154

The documentation for this class was generated from the following file: