46 #include "lib/sensors.h" 55 #define GROVE_GYRO_REGISTER_INT(ptr) grove_gyro_int_callback = ptr; 56 extern void (*grove_gyro_int_callback)(uint8_t value);
71 } grove_gyro_values_t;
73 extern grove_gyro_values_t gyro_values;
80 #define GROVE_GYRO_ADDR 0x68 82 #define GROVE_GYRO_WHO_AM_I 0x00 83 #define GROVE_GYRO_SMPLRT_DIV 0x15 84 #define GROVE_GYRO_DLPF_FS 0x16 85 #define GROVE_GYRO_INT_CFG 0x17 86 #define GROVE_GYRO_INT_STATUS 0x1A 87 #define GROVE_GYRO_TEMP_OUT_H 0x1B 88 #define GROVE_GYRO_TEMP_OUT_L 0x1C 89 #define GROVE_GYRO_XOUT_H 0x1D 90 #define GROVE_GYRO_XOUT_L 0x1E 91 #define GROVE_GYRO_YOUT_H 0x1F 92 #define GROVE_GYRO_YOUT_L 0x20 93 #define GROVE_GYRO_ZOUT_H 0x21 94 #define GROVE_GYRO_ZOUT_L 0x22 95 #define GROVE_GYRO_PWR_MGMT 0x3E 102 #define GROVE_GYRO_DLPF_FS_SEL 0x18 103 #define GROVE_GYRO_DLPF_FS_CGF_8KHZ_LP256HZ 0x00 104 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP188HZ 0x01 105 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP98HZ 0x02 106 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP42HZ 0x03 107 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP20HZ 0x04 108 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP10HZ 0x05 109 #define GROVE_GYRO_DLPF_FS_CGF_1KHZ_LP5HZ 0x06 111 #define GROVE_GYRO_INT_CFG_RAW_READY_EN 0x01 112 #define GROVE_GYRO_INT_CFG_READY_EN 0x04 113 #define GROVE_GYRO_INT_CFG_LATCH_CLR_ANY 0x10 114 #define GROVE_GYRO_INT_CFG_LATCH_EN 0x20 115 #define GROVE_GYRO_INT_CFG_PIN_OPEN 0x40 116 #define GROVE_GYRO_INT_CFG_PIN_ACTL 0x80 117 #define GROVE_GYRO_INT_CFG_DISABLE 0x00 119 #define GROVE_GYRO_INT_STATUS_DATA_RDY_MASK 0x01 120 #define GROVE_GYRO_INT_STATUS_PLL_RDY_MASK 0x04 122 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_INTOSC 0x00 123 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_PLL_X 0x01 124 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_PLL_Y 0x02 125 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_PLL_Z 0x03 126 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_EXT_32K 0x04 127 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_EXT_19K 0x05 128 #define GROVE_GYRO_PWR_MGMT_STBY_ZG 0x08 129 #define GROVE_GYRO_PWR_MGMT_STBY_YG 0x10 130 #define GROVE_GYRO_PWR_MGMT_STBY_XG 0x20 131 #define GROVE_GYRO_PWR_MGMT_SLEEP 0x40 132 #define GROVE_GYRO_PWR_MGMT_RESET 0x80 134 #ifdef GROVE_GYRO_CONF_OSC 135 #define GROVE_GYRO_DEFAULT_OSC GROVE_GYRO_CONF_OSC 137 #define GROVE_GYRO_DEFAULT_OSC GROVE_GYRO_PWR_MGMT_CLK_SEL_INTOSC 140 #define GROVE_GYRO_PWR_MGMT_CLK_SEL_MASK 0x07 141 #define GROVE_GYRO_MAX_DATA 0x06 149 #define GROVE_GYRO_ACTIVE SENSORS_ACTIVE 150 #define GROVE_GYRO_DATA_INTERRUPT 0x01 151 #define GROVE_GYRO_SAMPLE_RATE 0x02 152 #define GROVE_GYRO_SAMPLE_RATE_DIVIDER 0x03 153 #define GROVE_GYRO_POWER_ON 0x04 154 #define GROVE_GYRO_POWER_OFF 0x05 155 #define GROVE_GYRO_CALIBRATE_ZERO 0x06 158 #define GROVE_GYRO_X GROVE_GYRO_PWR_MGMT_STBY_XG 159 #define GROVE_GYRO_Y GROVE_GYRO_PWR_MGMT_STBY_YG 160 #define GROVE_GYRO_Z GROVE_GYRO_PWR_MGMT_STBY_ZG 161 #define GROVE_GYRO_SENSOR GROVE_GYRO_PWR_MGMT_SLEEP 162 #define GROVE_GYRO_XYZ (GROVE_GYRO_X + GROVE_GYRO_Y + \ 164 #define GROVE_GYRO_ALL (GROVE_GYRO_XYZ + GROVE_GYRO_SENSOR) 165 #define GROVE_GYRO_TEMP 0x06 168 #define GROVE_GYRO_ERROR (-1) 169 #define GROVE_GYRO_SUCCESS 0x00 172 #define GROVE_GYRO_CALIB_SAMPLES 200 173 #define GROVE_GYRO_CALIB_TIME_US 5000 176 #define GROVE_GYRO_STRING "Grove 3-axis gyroscope Sensor" 178 extern const struct sensors_sensor grove_gyro;