a

Dependencies:   mbed

Fork of ADXL345_I2C by Peter Swanson

Committer:
ohtake_i
Date:
Thu Dec 12 11:08:43 2013 +0000
Revision:
2:d193693441c6
Parent:
0:d0adb548714f
a;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peterswanson87 0:d0adb548714f 1 #include "ADXL345_I2C.h"
peterswanson87 0:d0adb548714f 2
ohtake_i 2:d193693441c6 3 ADXL345_I2C accelerometer(p28, p27);
ohtake_i 2:d193693441c6 4 Serial pc(USBTX, USBRX);
ohtake_i 2:d193693441c6 5 Serial device(p9, p10); // tx, rx
ohtake_i 2:d193693441c6 6
ohtake_i 2:d193693441c6 7 //for LEDs-----------------------------------------
ohtake_i 2:d193693441c6 8 DigitalOut debug1(LED1); //for debug
ohtake_i 2:d193693441c6 9 DigitalOut debug2(LED2); //for debug
ohtake_i 2:d193693441c6 10 DigitalOut debug3(LED3); //for debug
ohtake_i 2:d193693441c6 11 DigitalOut debug4(LED4); //for debug
ohtake_i 2:d193693441c6 12 //---------------------------------------------
peterswanson87 0:d0adb548714f 13
ohtake_i 2:d193693441c6 14
ohtake_i 2:d193693441c6 15 int main() {
ohtake_i 2:d193693441c6 16 pc.baud(9600);
ohtake_i 2:d193693441c6 17 int readings[3] = {0, 0, 0};
ohtake_i 2:d193693441c6 18 char tmp;
ohtake_i 2:d193693441c6 19
ohtake_i 2:d193693441c6 20 while(1){
ohtake_i 2:d193693441c6 21 pc.printf("Starting ADXL345 test...\n");
ohtake_i 2:d193693441c6 22 wait(.001);
ohtake_i 2:d193693441c6 23 pc.printf("Device ID is: 0x%02x\n", accelerometer.getDeviceID());
ohtake_i 2:d193693441c6 24 wait(.001);
peterswanson87 0:d0adb548714f 25
ohtake_i 2:d193693441c6 26 // These are here to test whether any of the initialization fails. It will print the failure
ohtake_i 2:d193693441c6 27 if (accelerometer.setPowerControl(0x00)){
ohtake_i 2:d193693441c6 28 pc.printf("didn't intitialize power control\n");
ohtake_i 2:d193693441c6 29 return 0;
ohtake_i 2:d193693441c6 30 }
ohtake_i 2:d193693441c6 31 //Full resolution, +/-16g, 4mg/LSB.
ohtake_i 2:d193693441c6 32 wait(.001);
peterswanson87 0:d0adb548714f 33
ohtake_i 2:d193693441c6 34 if(accelerometer.setDataFormatControl(0x0B)){
ohtake_i 2:d193693441c6 35 pc.printf("didn't set data format\n");
ohtake_i 2:d193693441c6 36 return 0;
ohtake_i 2:d193693441c6 37 }
ohtake_i 2:d193693441c6 38 wait(.001);
ohtake_i 2:d193693441c6 39
ohtake_i 2:d193693441c6 40 //3.2kHz data rate.
ohtake_i 2:d193693441c6 41 if(accelerometer.setDataRate(ADXL345_3200HZ)){
ohtake_i 2:d193693441c6 42 pc.printf("didn't set data rate\n");
ohtake_i 2:d193693441c6 43 return 0;
ohtake_i 2:d193693441c6 44 }
ohtake_i 2:d193693441c6 45 wait(.001);
ohtake_i 2:d193693441c6 46
ohtake_i 2:d193693441c6 47 //Measurement mode.
peterswanson87 0:d0adb548714f 48
ohtake_i 2:d193693441c6 49 if(accelerometer.setPowerControl(MeasurementMode)) {
ohtake_i 2:d193693441c6 50 pc.printf("didn't set the power control to measurement\n");
ohtake_i 2:d193693441c6 51 return 0;
ohtake_i 2:d193693441c6 52 }
ohtake_i 2:d193693441c6 53
ohtake_i 2:d193693441c6 54 while (1) {
ohtake_i 2:d193693441c6 55 wait(0.1);
ohtake_i 2:d193693441c6 56 accelerometer.getOutput(readings);
ohtake_i 2:d193693441c6 57 int dice_number = 0;
ohtake_i 2:d193693441c6 58
ohtake_i 2:d193693441c6 59 if ((int16_t)readings[0]>200){
ohtake_i 2:d193693441c6 60 dice_number = 1;
ohtake_i 2:d193693441c6 61 }
ohtake_i 2:d193693441c6 62 else if ((int16_t)readings[0]<-200){
ohtake_i 2:d193693441c6 63 dice_number = 6;
ohtake_i 2:d193693441c6 64 }
ohtake_i 2:d193693441c6 65 else if ((int16_t)readings[1]>200){
ohtake_i 2:d193693441c6 66 dice_number = 2;
ohtake_i 2:d193693441c6 67 }
ohtake_i 2:d193693441c6 68 else if ((int16_t)readings[1]<-200){
ohtake_i 2:d193693441c6 69 dice_number = 5;
ohtake_i 2:d193693441c6 70 }
ohtake_i 2:d193693441c6 71 else if ((int16_t)readings[2]>200){
ohtake_i 2:d193693441c6 72 dice_number = 3;
ohtake_i 2:d193693441c6 73 }
ohtake_i 2:d193693441c6 74 else if ((int16_t)readings[2]<-200){
ohtake_i 2:d193693441c6 75 dice_number = 4;
ohtake_i 2:d193693441c6 76 }
ohtake_i 2:d193693441c6 77
ohtake_i 2:d193693441c6 78 pc.printf("%i\r\n", dice_number);
ohtake_i 2:d193693441c6 79 }
ohtake_i 2:d193693441c6 80
ohtake_i 2:d193693441c6 81 tmp = pc.getc();
ohtake_i 2:d193693441c6 82
ohtake_i 2:d193693441c6 83 if(tmp == '0') {
ohtake_i 2:d193693441c6 84 pc.putc(tmp);
ohtake_i 2:d193693441c6 85 debug3 = 1;
ohtake_i 2:d193693441c6 86 debug4 = 0;
ohtake_i 2:d193693441c6 87 } else {
ohtake_i 2:d193693441c6 88 pc.printf("Fuck You!!\r\n");
ohtake_i 2:d193693441c6 89 pc.printf("tmp : %d\r\n", tmp);
ohtake_i 2:d193693441c6 90 debug4 = 1;
ohtake_i 2:d193693441c6 91 debug3 = 0;
ohtake_i 2:d193693441c6 92 }
ohtake_i 2:d193693441c6 93 }
ohtake_i 2:d193693441c6 94
ohtake_i 2:d193693441c6 95 }