imu.c 731 B

12345678910111213141516171819202122232425262728
  1. #include "imu.h"
  2. bool bmi160_begin();
  3. int bmi160_read(double* vec);
  4. bool lsm6ds3trc_begin();
  5. void lsm6ds3trc_end();
  6. int lsm6ds3trc_read(double* vec);
  7. bool imu_begin() {
  8. furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
  9. bool ret = lsm6dso_begin(); // lsm6ds3trc_begin();
  10. furi_hal_i2c_release(&furi_hal_i2c_handle_external);
  11. return ret;
  12. }
  13. void imu_end() {
  14. furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
  15. lsm6dso_end();
  16. furi_hal_i2c_release(&furi_hal_i2c_handle_external);
  17. }
  18. int imu_read(double* vec) {
  19. furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
  20. int ret = lsm6dso_read(vec); // lsm6ds3trc_read(vec);
  21. furi_hal_i2c_release(&furi_hal_i2c_handle_external);
  22. return ret;
  23. }