|
|
@ -72,8 +72,14 @@ inline uint8_t AVRSPI0DeviceDriver::_transfer(uint8_t data) { |
|
|
|
void AVRSPI0DeviceDriver::transaction(const uint8_t *tx, uint8_t *rx, |
|
|
|
void AVRSPI0DeviceDriver::transaction(const uint8_t *tx, uint8_t *rx, |
|
|
|
uint16_t len) { |
|
|
|
uint16_t len) { |
|
|
|
_cs_assert(); |
|
|
|
_cs_assert(); |
|
|
|
for (uint16_t i = 0; i < len; i++) { |
|
|
|
if (rx == NULL) { |
|
|
|
rx[i] = _transfer(tx[i]); |
|
|
|
for (uint16_t i = 0; i < len; i++) { |
|
|
|
|
|
|
|
_transfer(tx[i]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
for (uint16_t i = 0; i < len; i++) { |
|
|
|
|
|
|
|
rx[i] = _transfer(tx[i]); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
_cs_release(); |
|
|
|
_cs_release(); |
|
|
|
} |
|
|
|
} |
|
|
|