Peter Swanson / ADXL345_I2C参考 http://mbed.org/users/peterswanson87/code/ADXL345_I2C/

Dependencies:   mbed

Fork of ADXL345_I2C by Peter Swanson

Committer:
emanon
Date:
Thu Aug 01 08:13:05 2013 +0000
Revision:
2:84e6d627c619
Parent:
0:d0adb548714f
ADXL354_I2C ???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peterswanson87 0:d0adb548714f 1 #include "ADXL345_I2C.h"
peterswanson87 0:d0adb548714f 2
emanon 2:84e6d627c619 3 DigitalOut myled(LED1);
emanon 2:84e6d627c619 4 ADXL345_I2C accelerometer(p9, p10);
emanon 2:84e6d627c619 5 Serial pc(USBTX, USBRX);
peterswanson87 0:d0adb548714f 6
emanon 2:84e6d627c619 7 int main() {
emanon 2:84e6d627c619 8 pc.baud(115200);
emanon 2:84e6d627c619 9 // pc.baud(9600);
emanon 2:84e6d627c619 10 myled = 1;
emanon 2:84e6d627c619 11
emanon 2:84e6d627c619 12 int readings[3] = {0, 0, 0};
emanon 2:84e6d627c619 13
emanon 2:84e6d627c619 14 pc.printf("Starting ADXL345 test...\n");
emanon 2:84e6d627c619 15 wait(.001);
emanon 2:84e6d627c619 16 pc.printf("Device ID is: 0x%02x\n", accelerometer.getDeviceID());
peterswanson87 0:d0adb548714f 17 wait(.001);
peterswanson87 0:d0adb548714f 18
emanon 2:84e6d627c619 19 // These are here to test whether any of the initialization fails. It will print the failure
peterswanson87 0:d0adb548714f 20 if (accelerometer.setPowerControl(0x00)){
emanon 2:84e6d627c619 21 pc.printf("didn't intitialize power control\n");
emanon 2:84e6d627c619 22 return 0;
emanon 2:84e6d627c619 23 }
emanon 2:84e6d627c619 24 //Full resolution, +/-16g, 4mg/LSB.
emanon 2:84e6d627c619 25 wait(.001);
peterswanson87 0:d0adb548714f 26
emanon 2:84e6d627c619 27 if(accelerometer.setDataFormatControl(0x0B)){
peterswanson87 0:d0adb548714f 28 pc.printf("didn't set data format\n");
peterswanson87 0:d0adb548714f 29 return 0; }
emanon 2:84e6d627c619 30 wait(.001);
emanon 2:84e6d627c619 31
emanon 2:84e6d627c619 32 //3.2kHz data rate.
emanon 2:84e6d627c619 33 if(accelerometer.setDataRate(ADXL345_3200HZ)){
peterswanson87 0:d0adb548714f 34 pc.printf("didn't set data rate\n");
emanon 2:84e6d627c619 35 return 0;
emanon 2:84e6d627c619 36 }
emanon 2:84e6d627c619 37 wait(.001);
emanon 2:84e6d627c619 38
emanon 2:84e6d627c619 39 //Measurement mode.
emanon 2:84e6d627c619 40
emanon 2:84e6d627c619 41 if(accelerometer.setPowerControl(MeasurementMode)) {
peterswanson87 0:d0adb548714f 42 pc.printf("didn't set the power control to measurement\n");
emanon 2:84e6d627c619 43 return 0;
emanon 2:84e6d627c619 44 }
emanon 2:84e6d627c619 45 myled = 0;
emanon 2:84e6d627c619 46
emanon 2:84e6d627c619 47 while (1) {
peterswanson87 0:d0adb548714f 48 wait(0.1);
peterswanson87 0:d0adb548714f 49
peterswanson87 0:d0adb548714f 50 accelerometer.getOutput(readings);
emanon 2:84e6d627c619 51 pc.printf("%+4.2f, %+4.2f, %+4.2f\n",
emanon 2:84e6d627c619 52 (float((int16_t)readings[0]+18)/256),
emanon 2:84e6d627c619 53 (float((int16_t)readings[1]-4 )/256),
emanon 2:84e6d627c619 54 (float((int16_t)readings[2]+22)/256));
emanon 2:84e6d627c619 55 }
emanon 2:84e6d627c619 56 }