jiang hao
/
adxl345
DFRobot ADXL345
main.cpp@0:7dd215338a3d, 2016-07-15 (annotated)
- Committer:
- jh_ndm
- Date:
- Fri Jul 15 08:04:19 2016 +0000
- Revision:
- 0:7dd215338a3d
DFRobot ADXL345
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jh_ndm | 0:7dd215338a3d | 1 | #include"mbed.h" |
jh_ndm | 0:7dd215338a3d | 2 | |
jh_ndm | 0:7dd215338a3d | 3 | #define ADXL345_I2C_READ 0xA7 |
jh_ndm | 0:7dd215338a3d | 4 | #define ADXL345_I2C_WRITE 0xA6 |
jh_ndm | 0:7dd215338a3d | 5 | #define ADXL345_I2C_ADDRESS 0x53 |
jh_ndm | 0:7dd215338a3d | 6 | #define ADXL345_DEVID_REG 0x00 |
jh_ndm | 0:7dd215338a3d | 7 | #define ADXL345_DATAX0_REG 0x32 |
jh_ndm | 0:7dd215338a3d | 8 | #define ADXL345_POWER_CTL_REG 0x2D |
jh_ndm | 0:7dd215338a3d | 9 | #define MeasurementMode 0x08 |
jh_ndm | 0:7dd215338a3d | 10 | |
jh_ndm | 0:7dd215338a3d | 11 | I2C adxl345(PA_10,PA_09); |
jh_ndm | 0:7dd215338a3d | 12 | Serial uart0(PA_13,PA_14); |
jh_ndm | 0:7dd215338a3d | 13 | //DigitalOut led(LED1); |
jh_ndm | 0:7dd215338a3d | 14 | int16_t xyz[3] = {0, 0, 0}; |
jh_ndm | 0:7dd215338a3d | 15 | |
jh_ndm | 0:7dd215338a3d | 16 | int main() { |
jh_ndm | 0:7dd215338a3d | 17 | char config[2]; |
jh_ndm | 0:7dd215338a3d | 18 | char data[6]; |
jh_ndm | 0:7dd215338a3d | 19 | config[0] = ADXL345_DEVID_REG; |
jh_ndm | 0:7dd215338a3d | 20 | char output; |
jh_ndm | 0:7dd215338a3d | 21 | uart0.baud(9600); |
jh_ndm | 0:7dd215338a3d | 22 | adxl345.write( ADXL345_I2C_WRITE , config, 1); |
jh_ndm | 0:7dd215338a3d | 23 | adxl345.read( ADXL345_I2C_READ , &output, 1); |
jh_ndm | 0:7dd215338a3d | 24 | uart0.printf("ADXL345 device id is 0x%x.\r\n",output); |
jh_ndm | 0:7dd215338a3d | 25 | config[0] = ADXL345_POWER_CTL_REG; |
jh_ndm | 0:7dd215338a3d | 26 | config[1] = MeasurementMode; |
jh_ndm | 0:7dd215338a3d | 27 | adxl345.write( ADXL345_I2C_WRITE, config, 2); //set power |
jh_ndm | 0:7dd215338a3d | 28 | |
jh_ndm | 0:7dd215338a3d | 29 | config[0]=ADXL345_DATAX0_REG; |
jh_ndm | 0:7dd215338a3d | 30 | while (1) |
jh_ndm | 0:7dd215338a3d | 31 | { |
jh_ndm | 0:7dd215338a3d | 32 | adxl345.write( ADXL345_I2C_WRITE, config, 1); |
jh_ndm | 0:7dd215338a3d | 33 | adxl345.read( ADXL345_I2C_READ , data, 6); |
jh_ndm | 0:7dd215338a3d | 34 | xyz[0]=(int)data[1]<<8|(int)data[0]; |
jh_ndm | 0:7dd215338a3d | 35 | xyz[1]=(int)data[3]<<8|(int)data[2]; |
jh_ndm | 0:7dd215338a3d | 36 | xyz[2]=(int)data[5]<<8|(int)data[4]; |
jh_ndm | 0:7dd215338a3d | 37 | uart0.printf("%6i, %6i, %6i\n", xyz[0], xyz[1], xyz[2]); |
jh_ndm | 0:7dd215338a3d | 38 | wait(0.1); |
jh_ndm | 0:7dd215338a3d | 39 | } |
jh_ndm | 0:7dd215338a3d | 40 | } |