Created
May 19, 2018 06:39
-
-
Save iotguider/1b650b7aea3acb4aaf34477c4b67a111 to your computer and use it in GitHub Desktop.
Code for Slave Arduino for SPI Communication
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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