Alexandre Lemay
/
APP1_s5_A17
PARTYYYY
Accelerometre.cpp
- Committer:
- evrast
- Date:
- 2017-09-04
- Revision:
- 4:ab14f0e33f2b
- Parent:
- 3:56cd9dff3b5f
- Child:
- 5:70db90b673b9
File content as of revision 4:ab14f0e33f2b:
#include "Accelerometre.h" Accelerometre::Accelerometre():i2c(p9,p10),pc(USBTX, USBRX),acc(p9, p10, 40000){ acc.setBitDepth(MMA8452::BIT_DEPTH_12); acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G); acc.setDataRate(MMA8452::RATE_100); } void Accelerometre::readxyzAngle(double *Angle){ double x=0, y=0, z=0; acc.readXYZGravity(&x,&y,&z); *Angle = AngleCalculation(z); } double Accelerometre::AngleCalculation(double ZValue){ if(ZValue>1){ ZValue = 1; } double angle =std::acos(ZValue) return angle*180* PI; } //int Accelerometre::readSingleByte(int regis){ // int c; // pc.printf("Reading single byte\n"); // i2c.start(); // int a=i2c.write(WRITE_DATA); // A write to device // i2c.write(regis); // Register to read from (acceleration in X) // i2c.start(); // Need to send start condition here // i2c.write(READ_DATA); // tell devide you want to read // c=i2c.read(0); // i2c.stop(); // pc.printf("value is %d\n", c); // pc.printf("end\n"); // return c; // } void Accelerometre::writeByte(int regis,int data){ pc.printf("Reading single byte\n"); i2c.start(); i2c.write(WRITE_DATA); // A write to device i2c.write(regis); // Register to read from (acceleration in X) i2c.write(data); i2c.stop(); }