softspim: allow phase mode 2 (safe phase)
This commit is contained in:
@ -17,19 +17,19 @@ uint8_t SpiMaster::readWrite(uint8_t in)
|
|||||||
writePin(_port, _pinOut, in & (1 << i));
|
writePin(_port, _pinOut, in & (1 << i));
|
||||||
else
|
else
|
||||||
writePin(_port, _pinOut, in & (1 << (7-i)));
|
writePin(_port, _pinOut, in & (1 << (7-i)));
|
||||||
if constexpr (CLOCK_PHASE == 0)
|
if constexpr (CLOCK_PHASE == 0 || CLOCK_PHASE == 2)
|
||||||
_delay_us(DELAY_TIME_US);
|
_delay_us(DELAY_TIME_US);
|
||||||
writePin(_port, _pinClock, !CLOCK_POLARITY);
|
writePin(_port, _pinClock, !CLOCK_POLARITY);
|
||||||
if constexpr (CLOCK_PHASE == 1)
|
if constexpr (CLOCK_PHASE == 1 || CLOCK_PHASE == 2)
|
||||||
_delay_us(DELAY_TIME_US);
|
_delay_us(DELAY_TIME_US);
|
||||||
if constexpr (BIT_ORDER == 0)
|
if constexpr (BIT_ORDER == 0)
|
||||||
recByte |= readPin(_pinReg, _pinIn) << i;
|
recByte |= readPin(_pinReg, _pinIn) << i;
|
||||||
else
|
else
|
||||||
recByte |= readPin(_pinReg, _pinIn) << (7-i);
|
recByte |= readPin(_pinReg, _pinIn) << (7-i);
|
||||||
if constexpr (CLOCK_PHASE == 0)
|
if constexpr (CLOCK_PHASE == 0 || CLOCK_PHASE == 2)
|
||||||
_delay_us(DELAY_TIME_US);
|
_delay_us(DELAY_TIME_US);
|
||||||
writePin(_port, _pinClock, CLOCK_POLARITY);
|
writePin(_port, _pinClock, CLOCK_POLARITY);
|
||||||
if constexpr (CLOCK_PHASE == 1)
|
if constexpr (CLOCK_PHASE == 1 || CLOCK_PHASE == 2)
|
||||||
_delay_us(DELAY_TIME_US);
|
_delay_us(DELAY_TIME_US);
|
||||||
}
|
}
|
||||||
return recByte;
|
return recByte;
|
||||||
|
@ -7,7 +7,7 @@ class SpiMaster
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
static constexpr uint8_t CLOCK_POLARITY = 0;
|
static constexpr uint8_t CLOCK_POLARITY = 0;
|
||||||
static constexpr uint8_t CLOCK_PHASE = 0;
|
static constexpr uint8_t CLOCK_PHASE = 2;
|
||||||
static constexpr uint8_t BIT_ORDER = 1;
|
static constexpr uint8_t BIT_ORDER = 1;
|
||||||
|
|
||||||
volatile uint8_t * const _port = &PORTB;
|
volatile uint8_t * const _port = &PORTB;
|
||||||
|
Reference in New Issue
Block a user