imu.c 763 B

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