test program for using sensor R1307

Dependents:   r1370_test

r1307.cpp

Committer:
WAT34
Date:
2017-09-02
Revision:
1:59efa65938c7
Parent:
0:1356771603cf
Child:
2:deb20a97e035
Child:
3:5655017c6806

File content as of revision 1:59efa65938c7:

#include "r1307.h"


R1307::R1307(PinName tx_,PinName rx_): serial(tx_,rx_)
{
  ticker.attach(this,&R1307::update,0.01);
  serial.baud(115200);
}


void R1307::update()
{
  uint8_t index;
  int16_t angle;
  int16_t rate;
  int16_t x_acc;
  int16_t y_acc;
  int16_t z_acc;
  uint8_t check_sum;
  //Verify packet heading information
  while(serial.getc() != 0xAA){
    if(!serial.readable())
      return;
  }
  if(serial.getc() != 0x00)
    return;
   //Assemble data

  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);
  //Scale and store data
  gRate = rate / 100.0;
  gAngle = angle / 100.0;
  gX_acc = x_acc;
  gY_acc = y_acc;
  gZ_acc = z_acc;
  return;
}