Code for Master mbed:
#include "mbed.h"
SPI ser_port(p11, p12, p13);
DigitalOut red_led(LED1);
DigitalOut green_led(LED2);
DigitalOut cs(p14);
DigitalIn switch_ip2(p7);
DigitalIn switch_ip1(p6);
char switch_word;
char recd_val;
int main() {
while(1) {
switch_word=0xa0;
if(switch_ip1==1)
switch_word=switch_word|0x01;
if(switch_ip2==1)
switch_word=switch_word|0x02;
cs=0;
recd_val=ser_port.write(switch_word);
cs=1;
wait(0.1);
red_led = 0;
green_led = 0;
recd_val=recd_val&0x03;
if(recd_val==1)
red_led=1;
if(recd_val==2)
green_led=1;
if(recd_val==3){
red_led=1;
green_led=1;
}
}
}
#include "mbed.h"
SPI ser_port(p11, p12, p13);
DigitalOut red_led(LED1);
DigitalOut green_led(LED2);
DigitalOut cs(p14);
DigitalIn switch_ip2(p7);
DigitalIn switch_ip1(p6);
char switch_word;
char recd_val;
int main() {
while(1) {
switch_word=0xa0;
if(switch_ip1==1)
switch_word=switch_word|0x01;
if(switch_ip2==1)
switch_word=switch_word|0x02;
cs=0;
recd_val=ser_port.write(switch_word);
cs=1;
wait(0.1);
red_led = 0;
green_led = 0;
recd_val=recd_val&0x03;
if(recd_val==1)
red_led=1;
if(recd_val==2)
green_led=1;
if(recd_val==3){
red_led=1;
green_led=1;
}
}
}
Code for Slave mbed
#include "mbed.h"
SPISlave ser_port(p11, p12, p13, p14);
DigitalOut red_led(LED1);
DigitalOut green_led(LED2);
//DigitalOut cs(p14);
DigitalIn switch_ip2(p7);
DigitalIn switch_ip1(p6);
char switch_word;
char recd_val;
int main() {
while(1) {
switch_word=0xa0;
if(switch_ip1==1)
switch_word=switch_word|0x01;
if(switch_ip2==1)
switch_word=switch_word|0x02;
if(ser_port.receive()){
recd_val=ser_port.read();
ser_port.reply(switch_word);
}
red_led = 0;
green_led = 0;
recd_val=recd_val&0x03;
if(recd_val==1)
red_led=1;
if(recd_val==2)
green_led=1;
if(recd_val==3){
red_led=1;
green_led=1;
}
}
}