test program for using sensor R1307
Diff: r1307.cpp
- Revision:
- 3:5655017c6806
- Parent:
- 1:59efa65938c7
- Child:
- 4:b6583f28f7b7
--- a/r1307.cpp Sat Sep 02 19:30:23 2017 +0900 +++ b/r1307.cpp Fri Dec 01 18:18:17 2017 +0900 @@ -3,7 +3,7 @@ R1307::R1307(PinName tx_,PinName rx_): serial(tx_,rx_) { - ticker.attach(this,&R1307::update,0.01); + //ticker.attach(this,&R1307::update,0.01); serial.baud(115200); } @@ -16,7 +16,7 @@ int16_t x_acc; int16_t y_acc; int16_t z_acc; - uint8_t check_sum; + uint8_t check_sum,recievedData[13]; //Verify packet heading information while(serial.getc() != 0xAA){ if(!serial.readable()) @@ -25,13 +25,22 @@ if(serial.getc() != 0x00) return; //Assemble data + for(int i = 0;i < 13;i++) + { + recievedData[i] = serial.getc(); + } + for(int i = 0;i < 12;i++) + { + check_sum += recievedData[i]; + } + if (recievedData[12] != check_sum) return; - index = serial.getc(); - rate = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0xFF00); - angle = (serial.getc() & 0xFF) | ((serial.getc()<< 8) & 0XFF00); - x_acc = (serial.getc() & 0xFF) | ((serial.getc()<< 8) & 0xFF00); - y_acc = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0XFF00); - z_acc = (serial.getc() & 0xFF) | ((serial.getc() << 8) & 0xFF00); + index = recievedData[0]; + rate = (recievedData[1] & 0xFF) | ((recievedData[2] << 8) & 0xFF00); + angle = (recievedData[3] & 0xFF) | ((recievedData[4]<< 8) & 0XFF00); + x_acc = (recievedData[5] & 0xFF) | ((recievedData[6]<< 8) & 0xFF00); + y_acc = (recievedData[7] & 0xFF) | ((recievedData[8] << 8) & 0XFF00); + z_acc = (recievedData[9]& 0xFF) | ((recievedData[10] << 8) & 0xFF00); //Scale and store data gRate = rate / 100.0; gAngle = angle / 100.0;