diff options
Diffstat (limited to 'spi_comm/arduino_slave_read/arduino_slave_read.ino')
| -rw-r--r-- | spi_comm/arduino_slave_read/arduino_slave_read.ino | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/spi_comm/arduino_slave_read/arduino_slave_read.ino b/spi_comm/arduino_slave_read/arduino_slave_read.ino new file mode 100644 index 0000000..8264ae3 --- /dev/null +++ b/spi_comm/arduino_slave_read/arduino_slave_read.ino @@ -0,0 +1,30 @@ +#include<SPI.h> + +volatile boolean received; +volatile byte receivedData; + +ISR (SPI_STC_vect) //Inerrrput routine function +{ + receivedData = SPDR; // Get the received data from SPDR register + received = true; // Sets received as True +} + +void setup() +{ + Serial.begin(115200); + + pinMode(MISO,OUTPUT); //Sets MISO as OUTPUT + SPCR |= _BV(SPE); //Turn on SPI in Slave Mode + received = false; + SPI.attachInterrupt(); //Activate SPI Interuupt +} + + +void loop() +{ + if(received) { + SPDR = receivedData; // send back the received data, this is not necessary, only for demo purpose + received = false; + Serial.print(receivedData, HEX); + } +} |
