7_2_slave

Dependencies:   mbed

Committer:
jangelgm
Date:
Tue Mar 07 11:33:50 2017 +0000
Revision:
0:73793c67337f
7_2_slave

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jangelgm 0:73793c67337f 1 /* Sets the mbed up as Slave, and exchanges data with a Master,
jangelgm 0:73793c67337f 2 sending its own switch positions, and displaying those of the Master. as SPI slave
jangelgm 0:73793c67337f 3 */
jangelgm 0:73793c67337f 4 #include "mbed.h"
jangelgm 0:73793c67337f 5 SPISlave ser_port(p11, p12, p13, p14); //mosi, miso, sclk, ssel
jangelgm 0:73793c67337f 6 DigitalOut red_led(p25); //red led
jangelgm 0:73793c67337f 7 DigitalOut green_led(p26); //green led
jangelgm 0:73793c67337f 8
jangelgm 0:73793c67337f 9 DigitalIn switch_ip1(p5);
jangelgm 0:73793c67337f 10 DigitalIn switch_ip2(p6);
jangelgm 0:73793c67337f 11
jangelgm 0:73793c67337f 12 char switch_word ; //word we will send
jangelgm 0:73793c67337f 13 char recd_val; //value return from slave
jangelgm 0:73793c67337f 14
jangelgm 0:73793c67337f 15 int main()
jangelgm 0:73793c67337f 16 {
jangelgm 0:73793c67337f 17 //default formatting applied
jangelgm 0:73793c67337f 18 while(1) {
jangelgm 0:73793c67337f 19 //set up switch_word from switches that are pressed
jangelgm 0:73793c67337f 20 switch_word=0xa0; //set up a recognizable output pattern
jangelgm 0:73793c67337f 21 if (switch_ip1==1)
jangelgm 0:73793c67337f 22 switch_word=switch_word | 0x01;
jangelgm 0:73793c67337f 23 if (switch_ip2==1)
jangelgm 0:73793c67337f 24 switch_word=switch_word | 0x02;
jangelgm 0:73793c67337f 25 if(ser_port.receive()) { //test if data transfer has occurred
jangelgm 0:73793c67337f 26 recd_val = ser_port.read(); // Read byte from master
jangelgm 0:73793c67337f 27 ser_port.reply(switch_word); // Make this the next reply
jangelgm 0:73793c67337f 28 }
jangelgm 0:73793c67337f 29 red_led=0; //preset both to 0
jangelgm 0:73793c67337f 30 green_led=0;
jangelgm 0:73793c67337f 31 recd_val=recd_val & 0x03; //AND out unwanted bits
jangelgm 0:73793c67337f 32 if (recd_val==1)
jangelgm 0:73793c67337f 33 red_led=1;
jangelgm 0:73793c67337f 34 if (recd_val==2)
jangelgm 0:73793c67337f 35 green_led=1;
jangelgm 0:73793c67337f 36 if (recd_val==3){
jangelgm 0:73793c67337f 37 red_led=1;
jangelgm 0:73793c67337f 38 green_led=1;
jangelgm 0:73793c67337f 39 }
jangelgm 0:73793c67337f 40 }
jangelgm 0:73793c67337f 41 }