Emiel Estiévenart
/
Raspberry-mbedsoftware
Raspberry-mbedsoftware
Fork of XBee_read by
Revision 1:bd4ee148c0c8, committed 2016-03-24
- Comitter:
- Perijah
- Date:
- Thu Mar 24 14:53:25 2016 +0000
- Parent:
- 0:2eaf86314aea
- Commit message:
- mbed connected to raspberry will be equiped with this software.
Changed in this revision
C12832.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 2eaf86314aea -r bd4ee148c0c8 C12832.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C12832.lib Thu Mar 24 14:53:25 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/askksa12543/code/C12832/#990d5eec2ef6
diff -r 2eaf86314aea -r bd4ee148c0c8 main.cpp --- a/main.cpp Fri Jun 04 10:23:38 2010 +0000 +++ b/main.cpp Thu Mar 24 14:53:25 2016 +0000 @@ -1,43 +1,70 @@ #include "mbed.h" -#include "TextLCD.h" +#include "C12832.h" Serial xbee1(p9, p10); -DigitalOut rst1(p11); +DigitalOut rst1(p30); +int dataRecieved[10]; //array to store the data that's recieved. Max amount is 10. -DigitalOut myled(LED1); -DigitalOut myled2(LED2); +Serial pc(USBTX, USBRX); // tx, rx + + -TextLCD lcd(p16, p15, p14, p17, p18, p19, p20); // rs, rw, e, d0, d1, d2, d3 +void lezen() //read the data +{ + int flag = 0; + int adress = 0; + int size = 0; + int checkSum = 0; + int checkCompare = 0; //checksum must be equal to checkCompare + wait_ms(100); + flag = xbee1.getc(); //get flag. If flag is correct the transmission can continue. If not, this methode ends and will be called again in the main method. + if(flag == 0x7E) { + adress = xbee1.getc(); //get the adress. + checkCompare =(checkCompare+ adress); //build checkCompare + size = xbee1.getc(); //size of the data that is to be recieved. This will help filling the array dataRecieved. + for(int n=0 ; n<size ; n++) { + dataRecieved[n] = xbee1.getc(); + checkCompare +=dataRecieved[n]; + } + checkCompare = checkCompare % 256; + checkSum = xbee1.getc(); + + if(checkSum==checkCompare) {//if everything is correct it will print on to the pc. + pc.printf("%x,%x,%x,%x \n\r",adress,size,dataRecieved[0],checkSum); + } -int main() { + } else { //if the flag is incorrect, the method ends. + + } + + +} + + + + + + + +int main() +{ + + xbee1.baud(57600); + rst1 = 0; //Set reset pin to 0 - myled = 0; - myled2= 0; + wait_ms(1); rst1 = 1; //Set reset pin to 1 wait_ms(1); - lcd.printf("starting"); - wait(2); - lcd.cls(); + + - int a = 0; - int prev = 0; + xbee1.attach(lezen); //interrupt triggerd + while (1) { - if(xbee1.readable()){ - prev = a; - a = xbee1.getc(); //XBee read - - if (a != prev){ - if (a < 10){ - lcd.printf("%d", a); - } - if (a == 254 || a == 253){ - lcd.cls(); - } - } - } + } }