a
Dependencies: ADXL345_I2C ITG3200 mbed
Fork of ADXL345 by
main.cpp@1:67703f5eab67, 2015-07-31 (annotated)
- Committer:
- s1210160
- Date:
- Fri Jul 31 10:24:10 2015 +0000
- Revision:
- 1:67703f5eab67
- Parent:
- 0:75c7bfd01ea0
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jrha | 0:75c7bfd01ea0 | 1 | #include "mbed.h" |
jrha | 0:75c7bfd01ea0 | 2 | #include "ADXL345_I2C.h" |
s1210160 | 1:67703f5eab67 | 3 | |
jrha | 0:75c7bfd01ea0 | 4 | |
s1210160 | 1:67703f5eab67 | 5 | ADXL345_I2C acc(p9, p10); |
jrha | 0:75c7bfd01ea0 | 6 | Serial pc(USBTX, USBRX); |
s1210160 | 1:67703f5eab67 | 7 | |
s1210160 | 1:67703f5eab67 | 8 | void ADXL345_settings(){ |
s1210160 | 1:67703f5eab67 | 9 | //Go into standby mode to configure the device. |
s1210160 | 1:67703f5eab67 | 10 | acc.setPowerControl(0x00); |
s1210160 | 1:67703f5eab67 | 11 | wait(0.001); |
s1210160 | 1:67703f5eab67 | 12 | |
s1210160 | 1:67703f5eab67 | 13 | //Full resolution, +/-16g, 4mg/LSB. |
s1210160 | 1:67703f5eab67 | 14 | acc.setDataFormatControl(0x09); |
s1210160 | 1:67703f5eab67 | 15 | wait(0.001); |
s1210160 | 1:67703f5eab67 | 16 | |
s1210160 | 1:67703f5eab67 | 17 | //3.2kHz data rate. |
s1210160 | 1:67703f5eab67 | 18 | acc.setDataRate(ADXL345_800HZ); |
s1210160 | 1:67703f5eab67 | 19 | wait(0.001); |
s1210160 | 1:67703f5eab67 | 20 | |
s1210160 | 1:67703f5eab67 | 21 | //Measurement mode. |
s1210160 | 1:67703f5eab67 | 22 | acc.setPowerControl(0x08); |
s1210160 | 1:67703f5eab67 | 23 | wait(0.001); |
s1210160 | 1:67703f5eab67 | 24 | } |
jrha | 0:75c7bfd01ea0 | 25 | |
jrha | 0:75c7bfd01ea0 | 26 | int main() |
jrha | 0:75c7bfd01ea0 | 27 | { |
s1210160 | 1:67703f5eab67 | 28 | wait(3); |
s1210160 | 1:67703f5eab67 | 29 | |
s1210160 | 1:67703f5eab67 | 30 | pc.baud(9600); |
jrha | 0:75c7bfd01ea0 | 31 | |
jrha | 0:75c7bfd01ea0 | 32 | int readings[3] = {0, 0, 0}; |
s1210160 | 1:67703f5eab67 | 33 | |
s1210160 | 1:67703f5eab67 | 34 | Timer acc_Timer; |
s1210160 | 1:67703f5eab67 | 35 | const int acc_Time = 100; |
s1210160 | 1:67703f5eab67 | 36 | |
s1210160 | 1:67703f5eab67 | 37 | acc_Timer.start(); |
jrha | 0:75c7bfd01ea0 | 38 | |
s1210160 | 1:67703f5eab67 | 39 | pc.printf("Starting ADXL345 test...\n"); |
s1210160 | 1:67703f5eab67 | 40 | wait(0.001); |
s1210160 | 1:67703f5eab67 | 41 | ADXL345_settings(); |
s1210160 | 1:67703f5eab67 | 42 | wait(0.1); |
s1210160 | 1:67703f5eab67 | 43 | |
s1210160 | 1:67703f5eab67 | 44 | while(true){ |
s1210160 | 1:67703f5eab67 | 45 | |
s1210160 | 1:67703f5eab67 | 46 | if(acc_Timer.read_ms() >= acc_Time){ |
s1210160 | 1:67703f5eab67 | 47 | acc_Timer.reset(); |
s1210160 | 1:67703f5eab67 | 48 | acc.getOutput(readings); |
s1210160 | 1:67703f5eab67 | 49 | pc.printf("%i %i %i\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]); |
jrha | 0:75c7bfd01ea0 | 50 | } |
s1210160 | 1:67703f5eab67 | 51 | } |
jrha | 0:75c7bfd01ea0 | 52 | } |