w4spidatalinkmaster

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
occle
Date:
Thu Jan 12 15:45:25 2017 +0000
Commit message:
w4spidatalinkmaster

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r c912ef4f5206 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jan 12 15:45:25 2017 +0000
@@ -0,0 +1,40 @@
+/*Sets the mbed up as Master, and exchanges data with a slave, sending its own switch positions, and displaying those of the slave.*/
+#include "mbed.h"
+SPI ser_port(PTD2, PTD3, PTD1); //mosi, miso, sclk
+DigitalOut red_led(LED1); //red led
+DigitalOut green_led(LED2); //green led
+DigitalOut cs(PTC16); //this acts as “slave select”
+DigitalIn switch_ip1(SW2);
+DigitalIn switch_ip2(SW3);
+char switch_word ; //word we will send
+char recd_val; //value return from slave
+
+int main() {
+   while (1){
+//Default settings for SPI Master chosen, no need for further configuration
+//Set up the word to be sent, by testing switch inputs
+   switch_word=0xa0; //set up a recognizable output pattern
+     if (switch_ip1==0)
+     switch_word=switch_word|0x01; //OR in lsb, check if the botton is pressed
+     if (switch_ip2==0)
+     switch_word=switch_word|0x02; //OR in next lsb, check if the botton is pressed
+     cs = 0; //select slave ("active low")
+     recd_val=ser_port.write(switch_word); //send switch_word and receive data. set a initial value for recd_val (dummy)
+     cs = 1;
+     wait(0.01);//wait for slave to response
+//set leds according to incoming word from slave
+     red_led=1; //preset both to off
+     green_led=1;
+     recd_val=recd_val&0x03; //AND out unwanted bits
+     if (recd_val==1)
+     {red_led=0; //red on, green off
+      green_led=1;}
+     if (recd_val==2)
+     {red_led=1; //red off, green on
+      green_led=0;}
+     if (recd_val==3){
+      red_led=0; //both on
+      green_led=0;
+   }
+ }
+}
diff -r 000000000000 -r c912ef4f5206 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jan 12 15:45:25 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/0ab6a29f35bf
\ No newline at end of file