Peter Swanson / ADXL345_I2C参考 http://mbed.org/users/peterswanson87/code/ADXL345_I2C/
Fork of ADXL345_I2C by
main.cpp
- Committer:
- emanon
- Date:
- 2013-08-01
- Revision:
- 2:84e6d627c619
- Parent:
- 0:d0adb548714f
File content as of revision 2:84e6d627c619:
#include "ADXL345_I2C.h"
DigitalOut myled(LED1);
ADXL345_I2C accelerometer(p9, p10);
Serial pc(USBTX, USBRX);
int main() {
pc.baud(115200);
// pc.baud(9600);
myled = 1;
int readings[3] = {0, 0, 0};
pc.printf("Starting ADXL345 test...\n");
wait(.001);
pc.printf("Device ID is: 0x%02x\n", accelerometer.getDeviceID());
wait(.001);
// These are here to test whether any of the initialization fails. It will print the failure
if (accelerometer.setPowerControl(0x00)){
pc.printf("didn't intitialize power control\n");
return 0;
}
//Full resolution, +/-16g, 4mg/LSB.
wait(.001);
if(accelerometer.setDataFormatControl(0x0B)){
pc.printf("didn't set data format\n");
return 0; }
wait(.001);
//3.2kHz data rate.
if(accelerometer.setDataRate(ADXL345_3200HZ)){
pc.printf("didn't set data rate\n");
return 0;
}
wait(.001);
//Measurement mode.
if(accelerometer.setPowerControl(MeasurementMode)) {
pc.printf("didn't set the power control to measurement\n");
return 0;
}
myled = 0;
while (1) {
wait(0.1);
accelerometer.getOutput(readings);
pc.printf("%+4.2f, %+4.2f, %+4.2f\n",
(float((int16_t)readings[0]+18)/256),
(float((int16_t)readings[1]-4 )/256),
(float((int16_t)readings[2]+22)/256));
}
}
