Monday, 30 September 2013

Communication between two mbeds LPC11U24 via SPI and each have 2 LEDS and 2 switches

 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;
    }
    }

}

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;
    }
    }
}


SPI communication