Mercurial > public > ostc4
comparison Small_CPU/Src/compass.c @ 514:d9dbfa496f7e
Properly send compass 3 into sleepmode (end-2019 hardware)
author | heinrichsweikamp |
---|---|
date | Wed, 16 Sep 2020 10:30:28 +0200 |
parents | 9eeab3fead8f |
children | 573a2bc796c8 |
comparison
equal
deleted
inserted
replaced
513:0680975c39b8 | 514:d9dbfa496f7e |
---|---|
258 } | 258 } |
259 | 259 |
260 /* No compass identified => Retry */ | 260 /* No compass identified => Retry */ |
261 if(hardwareCompass == 0) | 261 if(hardwareCompass == 0) |
262 { | 262 { |
263 I2C_DeInit(); | |
264 HAL_Delay(100); | |
265 MX_I2C1_Init(); | |
266 HAL_Delay(100); | |
263 uint8_t data = WHO_AM_I; | 267 uint8_t data = WHO_AM_I; |
264 I2C_Master_Transmit( DEVICE_COMPASS_303D, &data, 1); | 268 I2C_Master_Transmit( DEVICE_COMPASS_303D, &data, 1); |
265 I2C_Master_Receive( DEVICE_COMPASS_303D, &data, 1); | 269 I2C_Master_Receive( DEVICE_COMPASS_303D, &data, 1); |
266 if(data == WHOIAM_VALUE_LSM303D) | 270 if(data == WHOIAM_VALUE_LSM303D) |
267 hardwareCompass = compass_generation2; //LSM303D; | 271 hardwareCompass = compass_generation2; //LSM303D; |
352 // compass_sleep | 356 // compass_sleep |
353 /// @brief low power mode | 357 /// @brief low power mode |
354 // =============================================================================== | 358 // =============================================================================== |
355 void compass_sleep(void) | 359 void compass_sleep(void) |
356 { | 360 { |
357 if(hardwareCompass == compass_generation2) //LSM303D) | 361 if(hardwareCompass == compass_generation2) //LSM303D |
358 { | |
359 compass_sleep_LSM303D(); | 362 compass_sleep_LSM303D(); |
360 } | 363 if(hardwareCompass == compass_generation1) //HMC5883L |
361 else | |
362 if(hardwareCompass == compass_generation1) //HMC5883L) | |
363 { | |
364 compass_sleep_HMC5883L(); | 364 compass_sleep_HMC5883L(); |
365 } | 365 if(hardwareCompass == compass_generation3) //LSM303AGR |
366 compass_sleep_LSM303AGR(); | |
366 } | 367 } |
367 | 368 |
368 | 369 |
369 // =============================================================================== | 370 // =============================================================================== |
370 // compass_read | 371 // compass_read |
376 if(hardwareCompass == compass_generation2) //LSM303D) | 377 if(hardwareCompass == compass_generation2) //LSM303D) |
377 compass_read_LSM303D(); | 378 compass_read_LSM303D(); |
378 if(hardwareCompass == compass_generation1) //HMC5883L) | 379 if(hardwareCompass == compass_generation1) //HMC5883L) |
379 compass_read_HMC5883L(); | 380 compass_read_HMC5883L(); |
380 if(hardwareCompass == compass_generation3) //LSM303AGR) | 381 if(hardwareCompass == compass_generation3) //LSM303AGR) |
381 compass_read_LSM303AGR(); | 382 compass_read_LSM303AGR(); |
382 | 383 |
383 } | 384 } |
384 | 385 |
385 | 386 |
386 // =============================================================================== | 387 // =============================================================================== |