diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/app/i2cdetect/main.cc | 13 | ||||
-rw-r--r-- | src/driver/s5851a.cc | 18 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/app/i2cdetect/main.cc b/src/app/i2cdetect/main.cc index 68c3677..4f82dc5 100644 --- a/src/app/i2cdetect/main.cc +++ b/src/app/i2cdetect/main.cc @@ -9,6 +9,9 @@ #ifdef DRIVER_LM75 #include "driver/lm75.h" #endif +#ifdef DRIVER_S5851A +#include "driver/s5851a.h" +#endif #ifdef DRIVER_AM2320 #include "driver/am2320.h" #endif @@ -45,6 +48,10 @@ void loop(void) kout.printf_float(lm75.getTemp()); kout << endl; #endif +#ifdef DRIVER_S5851A + kout.printf_float(s5851a.getTemp()); + kout << endl; +#endif #ifdef DRIVER_AM2320 am2320.read(); if (am2320.getStatus() == 0) { @@ -116,6 +123,12 @@ void loop(void) kout << "CCS811 status is " << ccs811.check() << endl; #endif #ifdef DRIVER_HDC1080 + /* + hdc1080.heater(1); + for (unsigned char i = 0; i < 50; i++) { + hdc1080.getTemp(); + } + */ kout << "HDC1080 temperature " << hdc1080.getTemp() << " degC" << endl; kout << "HDC1080 humidity " << hdc1080.getRH() << " %H" << endl; #endif diff --git a/src/driver/s5851a.cc b/src/driver/s5851a.cc new file mode 100644 index 0000000..be46181 --- /dev/null +++ b/src/driver/s5851a.cc @@ -0,0 +1,18 @@ +#include "driver/s5851a.h" +#if defined(MULTIPASS_ARCH_HAS_I2C) && !defined(DRIVER_SOFTI2C) +#include "driver/i2c.h" +#else +#include "driver/soft_i2c.h" +#endif + +float S5851A::getTemp() +{ + txbuf[0] = 0; + rxbuf[0] = 0; + rxbuf[1] = 0; + i2c.xmit(address, 1, txbuf, 2, rxbuf); + + return rxbuf[0] + (rxbuf[1] / 256.0); +} + +S5851A s5851a(0x4b); |