Ryusuke Iwata
/
HEPTA-Sat-Lite_Detect_z-axis
Detecting z-axis acceralation
main.cpp
- Committer:
- RyusukeIwata
- Date:
- 2021-08-03
- Revision:
- 0:99043f8d668d
File content as of revision 0:99043f8d668d:
//icm20601 最新版 #include "mbed.h" Serial pc(USBTX, USBRX); I2C i2c(PB_7,PB_6); DigitalOut conv(PA_4); const int addr_accel_gyro = 0xD0; char cmd[2]; char data[1]; char xh[1]; char xl[1]; int main() { conv = 1; i2c.frequency(100000); char cmdd; wait(2); data[0] = 0x75; i2c.write(addr_accel_gyro,data,1); i2c.read(addr_accel_gyro|0x01,xh,1); pc.printf("xh = 0x%02X\r\n",xh[0]); while(1){ cmdd = pc.getc(); if(cmdd == 'a'){ data[0] = 0x75; i2c.write(addr_accel_gyro,data,1); i2c.read(addr_accel_gyro|0x01,xh,1); pc.printf("xh = 0x%02X\r\n",xh[0]); cmd[0]=0x6B; cmd[1]=0x00; i2c.write(addr_accel_gyro,cmd,2); cmd[0]=0x6C; cmd[1]=0x00; i2c.write(addr_accel_gyro,cmd,2); cmd[0] = 0x37; cmd[1] = 0x02; i2c.write(addr_accel_gyro,cmd,2); while(1) { data[0] = 0x3F; i2c.write(addr_accel_gyro,data,1); i2c.read(addr_accel_gyro|0x01,xh,1); data[0] = 0x40; i2c.write(addr_accel_gyro,data,1); i2c.read(addr_accel_gyro|0x01,xl,1); //pc.printf("xh = 0x%02X,xl = 0x%02X\r\n",xh[0],xl[0]); double acc_ax = short((xh[0]<<8) | (xl[0])); double AX = (acc_ax)*4/32764*9.81; pc.printf("AZ = %f\r\n",AX); wait(0.5); } } } }