Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
Accelerometer.cpp@6:c12cea26842d, 2015-02-12 (annotated)
- Committer:
- pvaibhav
- Date:
- Thu Feb 12 19:00:28 2015 +0000
- Revision:
- 6:c12cea26842d
- Parent:
- 5:b9f2f62a8f90
- Child:
- 7:604a8369b801
New "Sensor" base class and delegation mechanism for sensor updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pvaibhav | 1:c279bc3af90c | 1 | #include "Accelerometer.h" |
pvaibhav | 1:c279bc3af90c | 2 | #define DEBUG "BMX055-Acc" |
pvaibhav | 1:c279bc3af90c | 3 | #include "Logger.h" |
pvaibhav | 1:c279bc3af90c | 4 | |
pvaibhav | 4:e759b8c756da | 5 | Accelerometer::Accelerometer(I2C &i2c) : I2CPeripheral(i2c, 0x18 << 1 /* address */) { |
pvaibhav | 5:b9f2f62a8f90 | 6 | powerOn(); |
pvaibhav | 1:c279bc3af90c | 7 | const uint8_t chip_id = read_reg(0x00); |
pvaibhav | 1:c279bc3af90c | 8 | if (chip_id == 0xfa) { |
pvaibhav | 5:b9f2f62a8f90 | 9 | INFO("Bosch Sensortec BMX055-Accel found"); |
pvaibhav | 5:b9f2f62a8f90 | 10 | deepSuspend(); |
pvaibhav | 1:c279bc3af90c | 11 | } else { |
pvaibhav | 1:c279bc3af90c | 12 | WARN("Bosch Sensortec BMX055-Accel not found (chip ID=0x%02x, expected=0x58)", chip_id); |
pvaibhav | 1:c279bc3af90c | 13 | } |
pvaibhav | 1:c279bc3af90c | 14 | } |
pvaibhav | 1:c279bc3af90c | 15 | |
pvaibhav | 5:b9f2f62a8f90 | 16 | void Accelerometer::powerOn() { |
pvaibhav | 5:b9f2f62a8f90 | 17 | write_reg(0x14, 0xB6); // reset |
pvaibhav | 5:b9f2f62a8f90 | 18 | wait_ms(2); // page 11 says only 1.3ms, nothing for startup time, so assuming 2ms |
pvaibhav | 5:b9f2f62a8f90 | 19 | write_reg(0x11, 0); // set power normal mode |
pvaibhav | 5:b9f2f62a8f90 | 20 | write_reg(0x10, 8); // set bandwidth = 7.81 Hz |
pvaibhav | 6:c12cea26842d | 21 | LOG("powered on"); |
pvaibhav | 5:b9f2f62a8f90 | 22 | } |
pvaibhav | 5:b9f2f62a8f90 | 23 | |
pvaibhav | 5:b9f2f62a8f90 | 24 | void Accelerometer::deepSuspend() { |
pvaibhav | 5:b9f2f62a8f90 | 25 | write_reg(0x11, 1); // deep suspend mode |
pvaibhav | 6:c12cea26842d | 26 | LOG("deep sleep"); |
pvaibhav | 5:b9f2f62a8f90 | 27 | } |