diff --git a/icm20948_8h_source.html b/icm20948_8h_source.html
index 99b6c54ca..8b32a41d5 100644
--- a/icm20948_8h_source.html
+++ b/icm20948_8h_source.html
@@ -566,581 +566,579 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
510 float accel_scale = 1.0;
-
511 float gyro_scale = 1.0;
-
-
-
-
-
-
-
-
-
-
-
-
523 accel_scale = 16384.0;
-
-
525 accel_scale = 8192.0;
-
-
527 accel_scale = 4096.0;
-
-
529 accel_scale = 2048.0;
-
-
531 gyroX = rawGyroX / gyro_scale;
-
532 gyroY = rawGyroY / gyro_scale;
-
533 gyroZ = rawGyroZ / gyro_scale;
-
-
535 accX = rawAccX / accel_scale;
-
536 accY = rawAccY / accel_scale;
-
537 accZ = rawAccZ / accel_scale;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
580 current_accel_range_ = new_accel_range;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
626 current_gyro_range_ = new_gyro_range;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
702 false, slv_addr, reg_addr, value);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
728 return (uint8_t)
false;
-
-
-
-
-
-
-
735 return (uint8_t)
false;
-
-
-
-
-
-
741 return (uint8_t)
false;
-
-
-
-
-
-
747 return (uint8_t)
false;
-
-
-
-
-
-
-
-
-
-
-
758 return (uint8_t)
false;
-
-
-
-
-
-
-
-
-
-
768 return (uint8_t)
true;
-
-
-
-
-
-
-
-
-
-
-
778 const uint8_t numbytes
-
-
-
781 uint8_t buffer[numbytes];
-
-
-
784 rawAccX = buffer[0] << 8 | buffer[1];
-
785 rawAccY = buffer[2] << 8 | buffer[3];
-
786 rawAccZ = buffer[4] << 8 | buffer[5];
-
-
788 rawGyroX = buffer[6] << 8 | buffer[7];
-
789 rawGyroY = buffer[8] << 8 | buffer[9];
-
790 rawGyroZ = buffer[10] << 8 | buffer[11];
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
508 float accel_scale = 1.0;
+
509 float gyro_scale = 1.0;
+
+
+
+
+
+
+
+
+
+
+
+
521 accel_scale = 16384.0;
+
+
523 accel_scale = 8192.0;
+
+
525 accel_scale = 4096.0;
+
+
527 accel_scale = 2048.0;
+
+
529 gyroX = rawGyroX / gyro_scale;
+
530 gyroY = rawGyroY / gyro_scale;
+
531 gyroZ = rawGyroZ / gyro_scale;
+
+
533 accX = rawAccX / accel_scale;
+
534 accY = rawAccY / accel_scale;
+
535 accZ = rawAccZ / accel_scale;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
578 current_accel_range_ = new_accel_range;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
624 current_gyro_range_ = new_gyro_range;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
700 false, slv_addr, reg_addr, value);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
726 return (uint8_t)
false;
+
+
+
+
+
+
+
733 return (uint8_t)
false;
+
+
+
+
+
+
739 return (uint8_t)
false;
+
+
+
+
+
+
745 return (uint8_t)
false;
+
+
+
+
+
+
+
+
+
+
+
756 return (uint8_t)
false;
+
+
+
+
+
+
+
+
+
+
766 return (uint8_t)
true;
+
+
+
+
+
+
+
+
+
+
+
776 const uint8_t numbytes
+
+
+
779 uint8_t buffer[numbytes];
+
+
+
782 rawAccX = buffer[0] << 8 | buffer[1];
+
783 rawAccY = buffer[2] << 8 | buffer[3];
+
784 rawAccZ = buffer[4] << 8 | buffer[5];
+
+
786 rawGyroX = buffer[6] << 8 | buffer[7];
+
787 rawGyroY = buffer[8] << 8 | buffer[9];
+
788 rawGyroZ = buffer[10] << 8 | buffer[11];
+
+
790 temperature = buffer[12] << 8 | buffer[13];
-
792 temperature = buffer[12] << 8 | buffer[13];
-
-
794 rawMagX = ((buffer[16] << 8)
-
795 | (buffer[15] & 0xFF));
-
796 rawMagY = ((buffer[18] << 8) | (buffer[17] & 0xFF));
-
797 rawMagZ = ((buffer[20] << 8) | (buffer[19] & 0xFF));
-
-
-
-
-
-
-
-
-
-
-
+ 792 rawMagX = ((buffer[16] << 8)
+ 793 | (buffer[15] & 0xFF));
+ 794 rawMagY = ((buffer[18] << 8) | (buffer[17] & 0xFF));
+ 795 rawMagZ = ((buffer[20] << 8) | (buffer[19] & 0xFF));
+
+
+
+
+
+
+
+
+
+
+
+
+ 831 float GetTemp() {
return (temperature / 333.87) + 21.0; }
- 833 float GetTemp() {
return (temperature / 333.87) + 21.0; }
-
- 839 uint8_t
Read8(uint8_t reg) {
return transport_.Read8(reg); }
-
-
-
-
-
847 return transport_.Write8(reg, value);
-
-
-
-
-
-
-
856 return transport_.Write16(reg, value);
-
-
-
-
-
860 void ReadReg(uint8_t reg, uint8_t *buff, uint8_t size)
-
-
862 return transport_.ReadReg(reg, buff, size);
-
-
-
-
-
865 uint8_t
ReadBits(uint8_t reg, uint8_t bits, uint8_t shift)
-
-
867 uint8_t val =
Read8(reg);
-
-
869 return val & ((1 << (bits)) - 1);
-
-
-
-
-
872 void WriteBits(uint8_t reg, uint8_t data, uint8_t bits, uint8_t shift)
-
-
874 uint8_t val =
Read8(reg);
-
-
-
877 uint8_t mask = (1 << (bits)) - 1;
-
-
-
-
-
882 val |= data << shift;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 959 Transport transport_;
-
- 961 uint16_t _sensorid_accel,
-
-
-
-
- 966 uint8_t current_accel_range_;
- 967 uint8_t current_gyro_range_;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 837 uint8_t
Read8(uint8_t reg) {
return transport_.Read8(reg); }
+
+
+
+
+
845 return transport_.Write8(reg, value);
+
+
+
+
+
+
+
854 return transport_.Write16(reg, value);
+
+
+
+
+
858 void ReadReg(uint8_t reg, uint8_t *buff, uint8_t size)
+
+
860 return transport_.ReadReg(reg, buff, size);
+
+
+
+
+
863 uint8_t
ReadBits(uint8_t reg, uint8_t bits, uint8_t shift)
+
+
865 uint8_t val =
Read8(reg);
+
+
867 return val & ((1 << (bits)) - 1);
+
+
+
+
+
870 void WriteBits(uint8_t reg, uint8_t data, uint8_t bits, uint8_t shift)
+
+
872 uint8_t val =
Read8(reg);
+
+
+
875 uint8_t mask = (1 << (bits)) - 1;
+
+
+
+
+
880 val |= data << shift;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 957 Transport transport_;
+
+ 959 uint16_t _sensorid_accel,
+
+
+
+
+ 964 uint8_t current_accel_range_;
+ 965 uint8_t current_gyro_range_;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Result Init(const Config &config)
Result ReceiveBlocking(uint16_t address, uint8_t *data, uint16_t size, uint32_t timeout)
Result TransmitBlocking(uint16_t address, uint8_t *data, uint16_t size, uint32_t timeout)
Device support for ICM20948 IMU sensor.
Definition icm20948.h:317
-icm20948_accel_range_t GetAccelRange()
Definition icm20948.h:557
-void SetAccelRange(icm20948_accel_range_t new_accel_range)
Definition icm20948.h:587
-Result GetTransportError()
Definition icm20948.h:955
+icm20948_accel_range_t GetAccelRange()
Definition icm20948.h:555
+void SetAccelRange(icm20948_accel_range_t new_accel_range)
Definition icm20948.h:585
+Result GetTransportError()
Definition icm20948.h:953
Result Init(Config config)
Definition icm20948.h:376
-void ResetI2CMaster(void)
Definition icm20948.h:920
+void ResetI2CMaster(void)
Definition icm20948.h:918
icm20948_accel_range_t
Definition icm20948.h:338
@ ICM20948_ACCEL_RANGE_8_G
Definition icm20948.h:341
@ ICM20948_ACCEL_RANGE_16_G
Definition icm20948.h:342
@ ICM20948_ACCEL_RANGE_2_G
Definition icm20948.h:339
@ ICM20948_ACCEL_RANGE_4_G
Definition icm20948.h:340
-Result AuxI2CBusSetupFailed(void)
Definition icm20948.h:935
-bool WriteMagRegister(uint8_t mag_reg_addr, uint8_t value)
Definition icm20948.h:498
-void SetBank(uint8_t bank_number)
Definition icm20948.h:675
+Result AuxI2CBusSetupFailed(void)
Definition icm20948.h:933
+bool WriteMagRegister(uint8_t mag_reg_addr, uint8_t value)
Definition icm20948.h:496
+void SetBank(uint8_t bank_number)
Definition icm20948.h:673
Icm20948()
Definition icm20948.h:319
-uint8_t ReadAccelRange()
Definition icm20948.h:565
-void Write16(uint8_t reg, uint16_t value)
Definition icm20948.h:854
-ak09916_data_rate_t GetMagDataRate()
Definition icm20948.h:646
+uint8_t ReadAccelRange()
Definition icm20948.h:563
+void Write16(uint8_t reg, uint16_t value)
Definition icm20948.h:852
+ak09916_data_rate_t GetMagDataRate()
Definition icm20948.h:644
~Icm20948()
Definition icm20948.h:320
uint8_t GetMagId()
Definition icm20948.h:432
-Icm20948Vect GetGyroVect()
Definition icm20948.h:813
-bool SetMagDataRate(ak09916_data_rate_t rate)
Definition icm20948.h:656
-void WriteBits(uint8_t reg, uint8_t data, uint8_t bits, uint8_t shift)
Definition icm20948.h:872
-void SetGyroRange(icm20948_gyro_range_t new_gyro_range)
Definition icm20948.h:614
-uint8_t ReadExternalRegister(uint8_t slv_addr, uint8_t reg_addr)
Definition icm20948.h:686
+Icm20948Vect GetGyroVect()
Definition icm20948.h:811
+bool SetMagDataRate(ak09916_data_rate_t rate)
Definition icm20948.h:654
+void WriteBits(uint8_t reg, uint8_t data, uint8_t bits, uint8_t shift)
Definition icm20948.h:870
+void SetGyroRange(icm20948_gyro_range_t new_gyro_range)
Definition icm20948.h:612
+uint8_t ReadExternalRegister(uint8_t slv_addr, uint8_t reg_addr)
Definition icm20948.h:684
void Reset()
Definition icm20948.h:417
-Icm20948Vect GetMagVect()
Definition icm20948.h:823
-void Write8(uint8_t reg, uint8_t value)
Definition icm20948.h:845
-bool WriteExternalRegister(uint8_t slv_addr, uint8_t reg_addr, uint8_t value)
Definition icm20948.h:699
-Result ConfigureI2CMaster(void)
Definition icm20948.h:912
+Icm20948Vect GetMagVect()
Definition icm20948.h:821
+void Write8(uint8_t reg, uint8_t value)
Definition icm20948.h:843
+bool WriteExternalRegister(uint8_t slv_addr, uint8_t reg_addr, uint8_t value)
Definition icm20948.h:697
+Result ConfigureI2CMaster(void)
Definition icm20948.h:910
Result SetupMag()
Definition icm20948.h:438
icm20948_gyro_range_t
Definition icm20948.h:347
@ ICM20948_GYRO_RANGE_500_DPS
Definition icm20948.h:349
@ ICM20948_GYRO_RANGE_250_DPS
Definition icm20948.h:348
@ ICM20948_GYRO_RANGE_1000_DPS
Definition icm20948.h:350
@ ICM20948_GYRO_RANGE_2000_DPS
Definition icm20948.h:351
-void WriteGyroRange(uint8_t new_gyro_range)
Definition icm20948.h:622
-Result EnableI2CMaster(bool enable_i2c_master)
Definition icm20948.h:902
-void SetAccelRateDivisor(uint16_t new_accel_divisor)
Definition icm20948.h:547
-icm20948_gyro_range_t GetGyroRange()
Definition icm20948.h:606
+void WriteGyroRange(uint8_t new_gyro_range)
Definition icm20948.h:620
+Result EnableI2CMaster(bool enable_i2c_master)
Definition icm20948.h:900
+void SetAccelRateDivisor(uint16_t new_accel_divisor)
Definition icm20948.h:545
+icm20948_gyro_range_t GetGyroRange()
Definition icm20948.h:604
ak09916_data_rate_t
Definition icm20948.h:356
@ AK09916_MAG_DATARATE_50_HZ
updates at 50Hz
Definition icm20948.h:363
@ AK09916_MAG_DATARATE_10_HZ
updates at 10Hz
Definition icm20948.h:361
@@ -1148,22 +1146,22 @@
@ AK09916_MAG_DATARATE_SHUTDOWN
Stops measurement updates.
Definition icm20948.h:357
@ AK09916_MAG_DATARATE_SINGLE
Definition icm20948.h:358
@ AK09916_MAG_DATARATE_20_HZ
updates at 20Hz
Definition icm20948.h:362
-float GetTemp()
Definition icm20948.h:833
-uint8_t ReadBits(uint8_t reg, uint8_t bits, uint8_t shift)
Definition icm20948.h:865
-Icm20948Vect GetAccelVect()
Definition icm20948.h:803
-uint8_t AuxillaryRegisterTransaction(bool read, uint8_t slv_addr, uint8_t reg_addr, uint8_t value)
Definition icm20948.h:711
-void WriteAccelRange(uint8_t new_accel_range)
Definition icm20948.h:576
-void SetGyroRateDivisor(uint8_t new_gyro_divisor)
Definition icm20948.h:596
-void ScaleValues()
Definition icm20948.h:503
+float GetTemp()
Definition icm20948.h:831
+uint8_t ReadBits(uint8_t reg, uint8_t bits, uint8_t shift)
Definition icm20948.h:863
+Icm20948Vect GetAccelVect()
Definition icm20948.h:801
+uint8_t AuxillaryRegisterTransaction(bool read, uint8_t slv_addr, uint8_t reg_addr, uint8_t value)
Definition icm20948.h:709
+void WriteAccelRange(uint8_t new_accel_range)
Definition icm20948.h:574
+void SetGyroRateDivisor(uint8_t new_gyro_divisor)
Definition icm20948.h:594
+void ScaleValues()
Definition icm20948.h:501
Result
Definition icm20948.h:368
@ OK
Definition icm20948.h:369
@ ERR
Definition icm20948.h:370
-uint8_t Read8(uint8_t reg)
Definition icm20948.h:839
-uint8_t ReadMagRegister(uint8_t mag_reg_addr)
Definition icm20948.h:493
-void SetI2CBypass(bool bypass_i2c)
Definition icm20948.h:892
-void ReadReg(uint8_t reg, uint8_t *buff, uint8_t size)
Definition icm20948.h:860
-uint8_t ReadGyroRange()
Definition icm20948.h:634
-void Process()
Definition icm20948.h:772
+uint8_t Read8(uint8_t reg)
Definition icm20948.h:837
+uint8_t ReadMagRegister(uint8_t mag_reg_addr)
Definition icm20948.h:491
+void SetI2CBypass(bool bypass_i2c)
Definition icm20948.h:890
+void ReadReg(uint8_t reg, uint8_t *buff, uint8_t size)
Definition icm20948.h:858
+uint8_t ReadGyroRange()
Definition icm20948.h:632
+void Process()
Definition icm20948.h:770
void Read(uint8_t *data, uint16_t size)
Definition icm20948.h:128
void Write8(uint8_t reg, uint8_t value)
Definition icm20948.h:138