Peter Swanson / ADXL345_I2C参考 http://mbed.org/users/peterswanson87/code/ADXL345_I2C/
Fork of ADXL345_I2C by
Diff: main.cpp
- Revision:
- 2:84e6d627c619
- Parent:
- 0:d0adb548714f
--- a/main.cpp Thu May 12 01:19:36 2011 +0000 +++ b/main.cpp Thu Aug 01 08:13:05 2013 +0000 @@ -1,49 +1,56 @@ #include "ADXL345_I2C.h" - ADXL345_I2C accelerometer(p28, p27); - Serial pc(USBTX, USBRX); +DigitalOut myled(LED1); +ADXL345_I2C accelerometer(p9, p10); +Serial pc(USBTX, USBRX); - int main() { - pc.baud(115200); - int readings[3] = {0, 0, 0}; - - pc.printf("Starting ADXL345 test...\n"); - wait(.001); - pc.printf("Device ID is: 0x%02x\n", accelerometer.getDeviceID()); +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 + // 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); + pc.printf("didn't intitialize power control\n"); + return 0; + } + //Full resolution, +/-16g, 4mg/LSB. + wait(.001); - if(accelerometer.setDataFormatControl(0x0B)){ + 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)){ + 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)) { + return 0; + } + wait(.001); + + //Measurement mode. + + if(accelerometer.setPowerControl(MeasurementMode)) { pc.printf("didn't set the power control to measurement\n"); - return 0; } - - while (1) { - + return 0; + } + myled = 0; + + while (1) { wait(0.1); accelerometer.getOutput(readings); - - - pc.printf("%i, %i, %i\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]); - } - - } + 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)); + } +} \ No newline at end of file