PARTYYYY

Dependencies:   mbed MMA8452

Accelerometre.cpp

Committer:
evrast
Date:
2017-09-05
Revision:
5:70db90b673b9
Parent:
2:3576839565ae
Parent:
4:ab14f0e33f2b
Child:
6:909e7877d915

File content as of revision 5:70db90b673b9:

#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();
    pc.printf("end\n");
    }