Posted intech notes
Latency of Serial.println() with Arduino UNO
As a part of my current experiment, I’m running following piece of code:
if (digitalRead(pinDeviceReadReady) == HIGH) {
Serial.println("DATA READY");
spiSend(0x20); // command "read request"
readBuffer.deviceId = spiReceive();
Serial.println(readBuffer.deviceId);
readBuffer.wireId = spiReceive();
Serial.println(readBuffer.wireId);
readBuffer.length = spiReceive();
Serial.println(readBuffer.length);
for (int i = 0; i <= readBuffer.length; ++i) {
readBuffer.data[i] = spiReceive();
Serial.println(readBuffer.data[i]);
}
}
where
inline void spiSend(uint8_t data)
{
// wait for device ready to write
while (digitalRead(pinDeviceWriteReady) == LOW);
SPI.transfer(data);
}
inline uint8_t spiReceive()
{
while (digitalRead(pinDeviceReadReady) == LOW);
uint8_t data = SPI.transfer(0);
return data;
}
