Juan Angel García
/
7_2_slave
7_2_slave
main.cpp@0:73793c67337f, 2017-03-07 (annotated)
- Committer:
- jangelgm
- Date:
- Tue Mar 07 11:33:50 2017 +0000
- Revision:
- 0:73793c67337f
7_2_slave
Who changed what in which revision?
User | Revision | Line number | New 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 | } |