Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ADXL345_I2C by
main.cpp@2:d193693441c6, 2013-12-12 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
