MPU6050 library using i2c interface on LPC1768 - Complementary filter is added. Now program can calculate pitch and roll angles.
Fork of MPU6050 by
Diff: MPU6050.h
- Revision:
- 0:954f15bd95f1
- Child:
- 1:a248e65a25cc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MPU6050.h Thu Jul 09 12:13:56 2015 +0000 @@ -0,0 +1,44 @@ +// Most of the code is adapted from Kris Winer's MPU6050 library + +#ifndef MPU6050_H +#define MPU6050_H + +#include "mbed.h" +#include "math.h" +#include "MPU6050RegDef.h" + +extern I2C i2c; // extern the i2c in order to able to use from other files +extern float aRes, gRes; + +/* whoAmI func uses this func, variables etc */ +extern Ticker toggler1; +extern Serial ftdi; +extern DigitalOut led2; +extern void toggle_led1(); + +/* Sensor datas to be used in main.cpp */ +extern float ax,ay,az; +extern float gx,gy,gz; +extern int16_t accelData[3],gyroData[3],tempData; +extern float accelBias[3], gyroBias[3]; + +/* Function Prototypes */ +class MPU6050 +{ + protected: + public: + void getAres(); + void getGres(); + void writeByte(uint8_t address, uint8_t subAddress, uint8_t data); + char readByte(uint8_t address, uint8_t subAddress); + void readBytes(uint8_t address, uint8_t subAddress, uint8_t byteNum, uint8_t* dest); + void whoAmI(); + void init(); + void reset(); + void readAccelData(int16_t* dest); + void readGyroData(int16_t* dest); + int16_t readTempData(); + void calibrate(float* dest1, float* dest2); +}; + +#endif \ No newline at end of file