From c114fb9c06b3547cd90990610cda98cc6e5be495 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Thu, 19 May 2016 15:55:05 +0200 Subject: Explain SPI dummy write in comments. --- tamper.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tamper.c b/tamper.c index d4db2b9..2893a6c 100644 --- a/tamper.c +++ b/tamper.c @@ -111,14 +111,23 @@ spi_setup(int on_flag) static inline void spi_write(uint8_t val) { + /* Move the value to be sent to the SPI slave into the SPI + register. This starts the SPI clock. */ SPDR = val; + + /* Wait for the byte to be shifted into the slave. */ loop_until_bit_is_set(SPSR, SPIF); } static inline uint8_t spi_read() { + /* Start clocking the SPI slave by moving a dummy byte (0) into the + SPI register and wait for the byte from the slave to be shifted + in. */ spi_write(0); + + /* Read the SPI register and return the value. */ return SPDR; } -- cgit v1.2.3