a
Fork of ADXL345_I2C by
main.cpp
- Committer:
- ohtake_i
- Date:
- 2013-12-12
- Revision:
- 2:d193693441c6
- Parent:
- 0:d0adb548714f
File content as of revision 2:d193693441c6:
#include "ADXL345_I2C.h"
ADXL345_I2C accelerometer(p28, p27);
Serial pc(USBTX, USBRX);
Serial device(p9, p10); // tx, rx
//for LEDs-----------------------------------------
DigitalOut debug1(LED1); //for debug
DigitalOut debug2(LED2); //for debug
DigitalOut debug3(LED3); //for debug
DigitalOut debug4(LED4); //for debug
//---------------------------------------------
int main() {
pc.baud(9600);
int readings[3] = {0, 0, 0};
char tmp;
while(1){
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;
}
while (1) {
wait(0.1);
accelerometer.getOutput(readings);
int dice_number = 0;
if ((int16_t)readings[0]>200){
dice_number = 1;
}
else if ((int16_t)readings[0]<-200){
dice_number = 6;
}
else if ((int16_t)readings[1]>200){
dice_number = 2;
}
else if ((int16_t)readings[1]<-200){
dice_number = 5;
}
else if ((int16_t)readings[2]>200){
dice_number = 3;
}
else if ((int16_t)readings[2]<-200){
dice_number = 4;
}
pc.printf("%i\r\n", dice_number);
}
tmp = pc.getc();
if(tmp == '0') {
pc.putc(tmp);
debug3 = 1;
debug4 = 0;
} else {
pc.printf("Fuck You!!\r\n");
pc.printf("tmp : %d\r\n", tmp);
debug4 = 1;
debug3 = 0;
}
}
}
