moon
Dependencies: Hexi_OLED_SSD1351
GYROMETER.cpp
00001 00002 #include "GYROMETER.h" 00003 #include "mbed.h" 00004 00005 GYROMETER::GYROMETER(PinName sda, PinName scl) : gyroi2c(sda,scl) 00006 { 00007 00008 } 00009 00010 void GYROMETER::Config(void) 00011 { 00012 char d[2]; 00013 d[0] = GYRO_CTRL_REG1; //standby mode 00014 d[1] = 0x08; 00015 gyroi2c.write(GYRO_I2C_ADDRESS, d,2); 00016 00017 00018 d[0] = GYRO_CTRL_REG0; 00019 d[1] = 0x00; 00020 gyroi2c.write(GYRO_I2C_ADDRESS, d, 2); 00021 00022 00023 d[0] = GYRO_CTRL_REG1; // active mode 00024 d[1] = 0x0A; 00025 gyroi2c.write(GYRO_I2C_ADDRESS, d,2); 00026 00027 } 00028 00029 void GYROMETER::getData(float * g_data) 00030 { 00031 00032 char data_bytes[7]; 00033 gyroi2c.write(GYRO_I2C_ADDRESS,GYRO_STATUS,1,true); // Read the 6 data bytes 00034 gyroi2c.read(GYRO_I2C_ADDRESS,data_bytes,7); 00035 00036 g_data[0] = (float)((int16_t)((data_bytes[1]*256) + (data_bytes[2]))) * 0.0625; 00037 g_data[1] = (float)((int16_t)((data_bytes[3]*256) + (data_bytes[4]))) * 0.0625; 00038 g_data[2] = (float)((int16_t)((data_bytes[5]*256) + (data_bytes[6]))) * 0.0625; 00039 00040 } 00041 00042 00043 00044 00045
Generated on Tue Jul 12 2022 18:19:43 by
1.7.2