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.
Dependencies: Hexi_OLED_SSD1351
GYROMETER.cpp@0:a84d2425acba, 2019-07-26 (annotated)
- Committer:
- raynard
- Date:
- Fri Jul 26 13:37:55 2019 +0000
- Revision:
- 0:a84d2425acba
watch
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| raynard | 0:a84d2425acba | 1 | |
| raynard | 0:a84d2425acba | 2 | #include "GYROMETER.h" |
| raynard | 0:a84d2425acba | 3 | #include "mbed.h" |
| raynard | 0:a84d2425acba | 4 | |
| raynard | 0:a84d2425acba | 5 | GYROMETER::GYROMETER(PinName sda, PinName scl) : gyroi2c(sda,scl) |
| raynard | 0:a84d2425acba | 6 | { |
| raynard | 0:a84d2425acba | 7 | |
| raynard | 0:a84d2425acba | 8 | } |
| raynard | 0:a84d2425acba | 9 | |
| raynard | 0:a84d2425acba | 10 | void GYROMETER::Config(void) |
| raynard | 0:a84d2425acba | 11 | { |
| raynard | 0:a84d2425acba | 12 | char d[2]; |
| raynard | 0:a84d2425acba | 13 | d[0] = GYRO_CTRL_REG1; //standby mode |
| raynard | 0:a84d2425acba | 14 | d[1] = 0x08; |
| raynard | 0:a84d2425acba | 15 | gyroi2c.write(GYRO_I2C_ADDRESS, d,2); |
| raynard | 0:a84d2425acba | 16 | |
| raynard | 0:a84d2425acba | 17 | |
| raynard | 0:a84d2425acba | 18 | d[0] = GYRO_CTRL_REG0; |
| raynard | 0:a84d2425acba | 19 | d[1] = 0x00; |
| raynard | 0:a84d2425acba | 20 | gyroi2c.write(GYRO_I2C_ADDRESS, d, 2); |
| raynard | 0:a84d2425acba | 21 | |
| raynard | 0:a84d2425acba | 22 | |
| raynard | 0:a84d2425acba | 23 | d[0] = GYRO_CTRL_REG1; // active mode |
| raynard | 0:a84d2425acba | 24 | d[1] = 0x0A; |
| raynard | 0:a84d2425acba | 25 | gyroi2c.write(GYRO_I2C_ADDRESS, d,2); |
| raynard | 0:a84d2425acba | 26 | |
| raynard | 0:a84d2425acba | 27 | } |
| raynard | 0:a84d2425acba | 28 | |
| raynard | 0:a84d2425acba | 29 | void GYROMETER::getData(float * g_data) |
| raynard | 0:a84d2425acba | 30 | { |
| raynard | 0:a84d2425acba | 31 | |
| raynard | 0:a84d2425acba | 32 | char data_bytes[7]; |
| raynard | 0:a84d2425acba | 33 | gyroi2c.write(GYRO_I2C_ADDRESS,GYRO_STATUS,1,true); // Read the 6 data bytes |
| raynard | 0:a84d2425acba | 34 | gyroi2c.read(GYRO_I2C_ADDRESS,data_bytes,7); |
| raynard | 0:a84d2425acba | 35 | |
| raynard | 0:a84d2425acba | 36 | g_data[0] = (float)((int16_t)((data_bytes[1]*256) + (data_bytes[2]))) * 0.0625; |
| raynard | 0:a84d2425acba | 37 | g_data[1] = (float)((int16_t)((data_bytes[3]*256) + (data_bytes[4]))) * 0.0625; |
| raynard | 0:a84d2425acba | 38 | g_data[2] = (float)((int16_t)((data_bytes[5]*256) + (data_bytes[6]))) * 0.0625; |
| raynard | 0:a84d2425acba | 39 | |
| raynard | 0:a84d2425acba | 40 | } |
| raynard | 0:a84d2425acba | 41 | |
| raynard | 0:a84d2425acba | 42 | |
| raynard | 0:a84d2425acba | 43 | |
| raynard | 0:a84d2425acba | 44 | |
| raynard | 0:a84d2425acba | 45 |