xbee Test, Serial communication with Arduino. transmit Data from an SHT15 connected to a arduino to the mbed

Dependencies:   TextLCD mbed

Revision:
0:252e98aa671c
Child:
1:c9f84815139d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu May 12 08:57:04 2011 +0000
@@ -0,0 +1,64 @@
+/**
+ * XBeeBeispiel
+ * Eine kleine Testanwendung die von einem Arduino die Werte des SHT15 per xbee empfängt
+ * die daten werden im serielle AT Modus übertragen
+ * Anschließend werden die Werte in Float convertiert und gespeichert
+ * Autor: Torsten Dillenburg
+ * erstellt: 11.05.2011
+ */
+
+#include "mbed.h"
+#include "TextLCD.h"
+
+Serial xbee1(p28, p27); //Serielles Objekt für den XBEE
+TextLCD    lcd(p26, p25, p24, p23, p22, p21);  // rs, e, d4-d7
+DigitalOut rst1(p11); //Digital reset für den XBee, 200ns zum reset
+
+DigitalOut myled(LED3);//Debug über Led 3 und 4 am mbed
+DigitalOut myled2(LED4);
+
+Serial pc(USBTX, USBRX);//serial Schnittstelle über den  USB port zum computer
+
+char v_char_temp[5]; // Buffer für die Seriellen werte
+int stelle;
+double v_messwert[3];
+bool debug = true;
+bool lcdupdate = false;
+
+
+int main() {
+    rst1 = 0; //Set reset pin to 0
+    myled = 0;//Set LED3 to 0
+    myled2= 0;//Set LED4 to 0
+    wait_ms(1);//Wait at least one millisecond
+    rst1 = 1;//Set reset pin to 1
+    wait_ms(1);//Wait another millisecond
+    stelle =0;
+    while (1) {//Neverending Loop
+        if (xbee1.readable()) {//Checking for serial comminication
+            myled = 0; //Turn Led 3 Off
+            v_char_temp[stelle]=xbee1.getc();
+            if (debug) pc.putc(v_char_temp[stelle]);
+            switch(v_char_temp[stelle]) {
+                case '0': stelle++; break;
+                case '1': stelle++; break;
+                case '2': stelle++; break;
+                case '3': stelle++; break;
+                case '4': stelle++; break;
+                case '5': stelle++; break;
+                case '6': stelle++; break;
+                case '7': stelle++; break;
+                case '8': stelle++; break;
+                case '9': stelle++; break;
+                case '.': stelle++; break;
+                case 't': v_messwert[0] = atof(v_char_temp); break;
+                case 'h': v_messwert[1] = atof(v_char_temp); break;
+                case 'd': v_messwert[2] = atof(v_char_temp); break;
+                default : for(int i=stelle; i>=0; i--) {v_char_temp[i]='0';} stelle=0;//puffer löschen
+            }    
+            
+            lcd.putc(v_char_temp[0]);
+            myled = 1; //Turn Led 3 on for succcessfull communication
+        }
+    }
+}
\ No newline at end of file