icm20602.c 780 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "libs/os.h"
  2. #include "bsp/bsp.h"
  3. #include "bsp/icm20602.h"
  4. #include "libs/logger.h"
  5. #define i2c_addr 0xD0
  6. #define ICM_WHO_AM_I 0x75
  7. static void icm_check_device(void);
  8. static int icm_i2c_read_bytes(u8 reg, u8* data, u8 length);
  9. void icm20602_init(void){
  10. icm_check_device();
  11. }
  12. static void icm_check_device(void)
  13. {
  14. u8 data = 0;
  15. icm_i2c_read_bytes(ICM_WHO_AM_I, &data,1);
  16. sys_debug("%d\n", data);
  17. }
  18. #if 0
  19. int icm_i2c_write_byte(u8 reg, u8 data)
  20. {
  21. return shark_i2c_write_byte(1, i2c_addr, reg, data);
  22. }
  23. int icm_i2c_write_nbytes(u8 reg, u8* data, u8 length)
  24. {
  25. return shark_i2c_write_nbytes(1 ,i2c_addr, reg, data, length);
  26. }
  27. #endif
  28. static int icm_i2c_read_bytes(u8 reg, u8* data, u8 length)
  29. {
  30. return shark_i2c_read_nbytes(1 ,i2c_addr, reg, data, length);
  31. }