diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2020-03-11 18:01:07 +0100 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2020-03-11 18:01:07 +0100 |
commit | a929c3cf4d98ee5e17def528ab99e27335dfa539 (patch) | |
tree | 8e186a5227bb7d62e3b547b60c1cda489cd82b3f /src | |
parent | d90a84032348f63f8b45b718939a0e957169b8a8 (diff) |
Add S5851A temperature sensor driver
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); |