Sarahi Moran
/
Ejercicio_slave_inst
Funciones slave
main.cpp@0:a027cfb8ab6b, 2014-09-06 (annotated)
- Committer:
- Sarahi
- Date:
- Sat Sep 06 16:15:07 2014 +0000
- Revision:
- 0:a027cfb8ab6b
codigo slave
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sarahi | 0:a027cfb8ab6b | 1 | #include "mbed.h" |
Sarahi | 0:a027cfb8ab6b | 2 | |
Sarahi | 0:a027cfb8ab6b | 3 | SPISlave ser_port(D11,D12,D13,D2); // mosi, miso, sclk, ssel |
Sarahi | 0:a027cfb8ab6b | 4 | DigitalOut red_led(LED_RED); //red led |
Sarahi | 0:a027cfb8ab6b | 5 | DigitalOut green_led(LED_GREEN); //green led |
Sarahi | 0:a027cfb8ab6b | 6 | DigitalIn switch_ip1(SW1); |
Sarahi | 0:a027cfb8ab6b | 7 | DigitalIn switch_ip2(SW3); |
Sarahi | 0:a027cfb8ab6b | 8 | |
Sarahi | 0:a027cfb8ab6b | 9 | char switch_word ; //word we will send |
Sarahi | 0:a027cfb8ab6b | 10 | char recd_val; //value received from master |
Sarahi | 0:a027cfb8ab6b | 11 | |
Sarahi | 0:a027cfb8ab6b | 12 | int main() { |
Sarahi | 0:a027cfb8ab6b | 13 | switch_ip1.mode(PullUp); |
Sarahi | 0:a027cfb8ab6b | 14 | switch_ip2.mode(PullUp); |
Sarahi | 0:a027cfb8ab6b | 15 | |
Sarahi | 0:a027cfb8ab6b | 16 | //default formatting applied |
Sarahi | 0:a027cfb8ab6b | 17 | while(1) { |
Sarahi | 0:a027cfb8ab6b | 18 | //set up switch_word from switches that are pressed |
Sarahi | 0:a027cfb8ab6b | 19 | switch_word=0xa0; //set up a recognisable output pattern |
Sarahi | 0:a027cfb8ab6b | 20 | if (switch_ip1==0) |
Sarahi | 0:a027cfb8ab6b | 21 | switch_word=switch_word|0x01; |
Sarahi | 0:a027cfb8ab6b | 22 | if (switch_ip2==0) |
Sarahi | 0:a027cfb8ab6b | 23 | switch_word=switch_word|0x02; |
Sarahi | 0:a027cfb8ab6b | 24 | |
Sarahi | 0:a027cfb8ab6b | 25 | if(ser_port.receive()) { //test if data transfer has occurred |
Sarahi | 0:a027cfb8ab6b | 26 | recd_val = ser_port.read(); // Read byte from master |
Sarahi | 0:a027cfb8ab6b | 27 | ser_port.reply(switch_word); // Make this the next reply |
Sarahi | 0:a027cfb8ab6b | 28 | } |
Sarahi | 0:a027cfb8ab6b | 29 | //set leds according to incoming word from slave |
Sarahi | 0:a027cfb8ab6b | 30 | red_led=1; //preset both to 0 |
Sarahi | 0:a027cfb8ab6b | 31 | green_led=1; |
Sarahi | 0:a027cfb8ab6b | 32 | recd_val=recd_val&0x03; //AND out unwanted bits |
Sarahi | 0:a027cfb8ab6b | 33 | if (recd_val==1) |
Sarahi | 0:a027cfb8ab6b | 34 | red_led=0; |
Sarahi | 0:a027cfb8ab6b | 35 | if (recd_val==2) |
Sarahi | 0:a027cfb8ab6b | 36 | green_led=0; |
Sarahi | 0:a027cfb8ab6b | 37 | if (recd_val==3){ |
Sarahi | 0:a027cfb8ab6b | 38 | red_led=0; |
Sarahi | 0:a027cfb8ab6b | 39 | green_led=0; |
Sarahi | 0:a027cfb8ab6b | 40 | } |
Sarahi | 0:a027cfb8ab6b | 41 | } |
Sarahi | 0:a027cfb8ab6b | 42 | } |
Sarahi | 0:a027cfb8ab6b | 43 | //now set leds according to received word |