xbee Test, Serial communication with Arduino. transmit Data from an SHT15 connected to a arduino to the mbed
Diff: main.cpp
- 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