Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
GyroscopeMPU.cpp@46:fd5a62296b12, 2015-05-27 (annotated)
- Committer:
- pvaibhav
- Date:
- Wed May 27 13:01:43 2015 +0000
- Revision:
- 46:fd5a62296b12
- Parent:
- 40:8e852115fe55
Code reformatted
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pvaibhav | 40:8e852115fe55 | 1 | #include "GyroscopeMPU.h" |
pvaibhav | 40:8e852115fe55 | 2 | #define DEBUG "MPU-Gyr" |
pvaibhav | 40:8e852115fe55 | 3 | #include "Logger.h" |
pvaibhav | 40:8e852115fe55 | 4 | |
pvaibhav | 40:8e852115fe55 | 5 | #include "Vector3.h" |
pvaibhav | 40:8e852115fe55 | 6 | |
pvaibhav | 40:8e852115fe55 | 7 | GyroscopeMPU::GyroscopeMPU(I2C &i2c) : I2CPeripheral(i2c, 0x68 << 1 /* address */), int1(p26) |
pvaibhav | 40:8e852115fe55 | 8 | { |
pvaibhav | 40:8e852115fe55 | 9 | if (powerOn()) { |
pvaibhav | 40:8e852115fe55 | 10 | INFO("Invensense MPU9250-Gyro found"); |
pvaibhav | 40:8e852115fe55 | 11 | int1.rise(this, &GyroscopeMPU::handleInterrupt); |
pvaibhav | 40:8e852115fe55 | 12 | powerOff(); |
pvaibhav | 40:8e852115fe55 | 13 | } else { |
pvaibhav | 40:8e852115fe55 | 14 | WARN("Invensense MPU9250-Gyro not found"); |
pvaibhav | 40:8e852115fe55 | 15 | } |
pvaibhav | 40:8e852115fe55 | 16 | } |
pvaibhav | 40:8e852115fe55 | 17 | |
pvaibhav | 40:8e852115fe55 | 18 | void GyroscopeMPU::powerOff() |
pvaibhav | 40:8e852115fe55 | 19 | { |
pvaibhav | 40:8e852115fe55 | 20 | LOG("deep sleep"); |
pvaibhav | 40:8e852115fe55 | 21 | } |
pvaibhav | 40:8e852115fe55 | 22 | |
pvaibhav | 40:8e852115fe55 | 23 | void GyroscopeMPU::handleInterrupt(void) |
pvaibhav | 40:8e852115fe55 | 24 | { |
pvaibhav | 40:8e852115fe55 | 25 | delegate->sensorUpdate(read()); |
pvaibhav | 40:8e852115fe55 | 26 | } |
pvaibhav | 40:8e852115fe55 | 27 | |
pvaibhav | 40:8e852115fe55 | 28 | bool GyroscopeMPU::powerOn() |
pvaibhav | 40:8e852115fe55 | 29 | { |
pvaibhav | 40:8e852115fe55 | 30 | LOG("powered on"); |
pvaibhav | 40:8e852115fe55 | 31 | return read_reg(117) == 0x68; // verify Chip ID |
pvaibhav | 40:8e852115fe55 | 32 | } |
pvaibhav | 40:8e852115fe55 | 33 | |
pvaibhav | 40:8e852115fe55 | 34 | void GyroscopeMPU::start() |
pvaibhav | 40:8e852115fe55 | 35 | { |
pvaibhav | 40:8e852115fe55 | 36 | } |
pvaibhav | 40:8e852115fe55 | 37 | |
pvaibhav | 40:8e852115fe55 | 38 | void GyroscopeMPU::stop() |
pvaibhav | 40:8e852115fe55 | 39 | { |
pvaibhav | 40:8e852115fe55 | 40 | } |
pvaibhav | 40:8e852115fe55 | 41 | |
pvaibhav | 40:8e852115fe55 | 42 | Vector3 GyroscopeMPU::read() |
pvaibhav | 40:8e852115fe55 | 43 | { |
pvaibhav | 40:8e852115fe55 | 44 | return Vector3(0, 0, 0); |
pvaibhav | 40:8e852115fe55 | 45 | } |