blob: 8264ae38469c7966c3feb45c329c7c1e60ad8761 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
}
}
|