Basic functions is OK. Lack interrupts function.
Diff: AK09970.cpp
- Revision:
- 2:afb035feac6c
- Parent:
- 1:4eefcf1d7351
--- a/AK09970.cpp Thu Jan 26 03:22:34 2017 +0000 +++ b/AK09970.cpp Tue Mar 07 09:48:40 2017 +0000 @@ -22,7 +22,7 @@ } -void AK09970::ConfigDevice() { +void AK09970::ConfigDevice(uint8_t mode) { char val[8]; /* Soft reset */ @@ -34,7 +34,8 @@ RegWrite(0x20, val, 2); /* Mode */ - RegWrite(0x21, 0x02); // SMR(HighSensitivity), SDR(LowNoiseDrive), MODE(ContMode1) + _sensitivity = (mode & SMR_WideRange) ? 3.1f : 1.1f; + RegWrite(0x21, mode); } void AK09970::GetDeviceID(uint8_t *id) { @@ -62,7 +63,7 @@ } float AK09970::ConvertAdcToMagnetic(int16_t adc) { - float magnetic_flux_density = (float)adc * 1.1f; + float magnetic_flux_density = (float)adc * _sensitivity; return magnetic_flux_density; }