Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save iotguider/1b650b7aea3acb4aaf34477c4b67a111 to your computer and use it in GitHub Desktop.
Save iotguider/1b650b7aea3acb4aaf34477c4b67a111 to your computer and use it in GitHub Desktop.
Code for Slave Arduino for SPI Communication
#include <SPI.h>
char buff [50];
volatile byte indx;
volatile boolean process;
void setup() {
Serial.begin (115200);
pinMode(MISO, OUTPUT); // have to send on master in so it set as output
SPCR |= _BV(SPE); // turn on SPI in slave mode
indx = 0; // buffer empty
process = false;
SPI.attachInterrupt(); // turn on interrupt
}
ISR (SPI_STC_vect) {// SPI interrupt routine
byte c = SPDR; // read byte from SPI Data Register
if (indx < sizeof buff) {
buff [indx++] = c; // save data in the next index in the array buff
if (c == '\r') //check for the end of the word
process = true;
}
}
void loop(){
if (process) {
process = false; //reset the process
Serial.println (buff); //print the array on serial monitor
indx= 0; //reset button to zero
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment