summaryrefslogtreecommitdiff
path: root/spi_comm/arduino_slave_read/arduino_slave_read.ino
diff options
context:
space:
mode:
Diffstat (limited to 'spi_comm/arduino_slave_read/arduino_slave_read.ino')
-rw-r--r--spi_comm/arduino_slave_read/arduino_slave_read.ino30
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);
+ }
+}