46 #define L3G4200D_DPSDIV_250G 35
47 #define L3G4200D_DPSDIV_500G 70
48 #define L3G4200D_DPSDIV_2000G 280
50 uint16_t l3g4200d_dps_scale;
54 #define raw_to_temp(a) (25 - TEMP_OFFSET - ((int8_t) a))
103 case L3G4200D_250DPS:
104 l3g4200d_dps_scale = L3G4200D_DPSDIV_250G;
106 case L3G4200D_500DPS:
107 l3g4200d_dps_scale = L3G4200D_DPSDIV_500G;
109 case L3G4200D_2000DPS:
110 l3g4200d_dps_scale = L3G4200D_DPSDIV_2000G;
115 return (tmpref & 0x30) ^ (
set);
127 return (tmpref & 0xC0) ^ (
set);
153 uint8_t lsb = 0, msb = 0;
154 i2c_start(L3G4200D_DEV_ADDR_W);
156 i2c_rep_start(L3G4200D_DEV_ADDR_R);
159 ret_data.x = (uint16_t) ((msb << 8) + lsb);
162 ret_data.y = (uint16_t) ((msb << 8) + lsb);
165 ret_data.z = (uint16_t) ((msb << 8) + lsb);
176 for (idx = 0; idx < fifolevel; idx++) {
212 i2c_start(L3G4200D_DEV_ADDR_W);
214 i2c_rep_start(L3G4200D_DEV_ADDR_R);
223 uint8_t lsb = 0, msb = 0;
224 i2c_start(L3G4200D_DEV_ADDR_W);
226 i2c_rep_start(L3G4200D_DEV_ADDR_R);
230 return (uint16_t) ((msb << 8) + lsb);
236 i2c_start(L3G4200D_DEV_ADDR_W);