Mathias Peers
/
ReceiverV2
Xbee receiver
Diff: main.cpp
- Revision:
- 1:30d319218526
- Parent:
- 0:b78d22fdc409
- Child:
- 2:d7d8778f9780
--- a/main.cpp Thu Mar 10 20:27:00 2016 +0000 +++ b/main.cpp Wed Mar 23 11:50:42 2016 +0000 @@ -1,35 +1,72 @@ #include "mbed.h" +#include "C12832.h" DigitalOut myled1(LED1); DigitalOut myled2(LED2); DigitalOut myled3(LED3); DigitalOut myled4(LED4); -InterruptIn down(p12); -InterruptIn left(p13); -InterruptIn up(p15); -InterruptIn right(p16); +Serial xbee(p9,p10); +//DigitalOut nReset(p30); //reset pin of the xbee + +C12832 lcd(p5, p7, p6, p8, p11); //Used for the LCD -Serial xbee(p9,p10); +char a; +int ID=0b00000001; +int ACK; +int teller; +char received[7]; +int check; +int i; -char Source=0b00000010; -char Des=0b00000001; -char Item,Status,Checksum; -char Item2 = 0x01; -char Status2 = 0x01; +void send(){ + xbee.putc(0x7E); + xbee.putc(received[2]); + xbee.putc(received[1]); + xbee.putc(ACK); + xbee.putc(0x7E); +} -bool sending=1; - -int main() { +int main(){ + xbee.baud(57600); + myled1=1; + wait(0.2); + myled1=0; while(1) { if(xbee.readable()) { //Checks if the data is readable - control = xbee.getc(); //Get the first character that's in the buffer - if(control==0b00001111){ - sending=1; - } - if(control==0b11110000){ - send(); + xbee.gets(received,8); + check=(received[1]+received[2]+received[3]+received[4])%255; + if(received[2]=ID){ + if(received[0]==0x7E){ + myled1=!myled1; + } + if(received[6]==0x7E){ + myled2=!myled2; + } + if(check==received[5]) { + myled3=!myled3; + teller++; + lcd.cls(); + lcd.printf("%d",teller); + ACK=0b00001111; + send(); + while(i<5){ + received[i]=0; + i++; + } + i=0; + } + if(received[5]!=check){ + myled4=!myled4; + ACK=0b11110000; + send(); + while(i<5){ + received[i]=0; + i++; + } + i=0; + } } } } -} +} \ No newline at end of file