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

Dependencies:   mbed

Fork of ADXL345_I2C by Peter Swanson

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));
    }
}