Funciones slave

Dependencies:   mbed

Committer:
Sarahi
Date:
Sat Sep 06 16:15:07 2014 +0000
Revision:
0:a027cfb8ab6b
codigo slave

Who changed what in which revision?

UserRevisionLine numberNew 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