Question.4
What number will be printed on Arduino2’s serial monitor? (after executing the following code)
Master code :
#include <avr/io.h>
#include <SPI.h>
void setup() {
pinMode(MISO, INPUT);
pinMode(MOSI, OUTPUT);
pinMode(SCK, OUTPUT);
pinMode(SS, OUTPUT);
SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0);
digitalWrite(SS, HIGH);
}
void loop() {
digitalWrite(SS, LOW);
SPDR = 0x09;
while (!(SPSR & (1 << SPIF)));
digitalWrite(SS, HIGH);
while(1);
}
Slave code :
#include <avr/io.h>
void setup() {
pinMode(MISO, OUTPUT);
pinMode(MOSI, INPUT);
pinMode(SCK, INPUT);
pinMode(SS, INPUT);
SPCR = (1 << SPE);
Serial.begin(9600);
}
void loop() {
if (SPSR & (1 << SPIF)) {
byte receivedData = SPDR;
Serial.println(receivedData, HEX);
}
}