diff --git a/include/driver/hdc1080.h b/include/driver/hdc1080.h index 83a99cb63d2be5af50bd8eb6c4a4d7fd9258cebb..85d1303cd8824cdcd4215c6c830768eef1cf90d7 100644 --- a/include/driver/hdc1080.h +++ b/include/driver/hdc1080.h @@ -20,6 +20,7 @@ class HDC1080 { float getRH(); unsigned int getManufacturerID(); void init(); + void measure(); void heater(bool on); }; diff --git a/src/app/datalogger/main.cc b/src/app/datalogger/main.cc index f9484b59db873357301bf1cfe9c0171c33954527..2d8a8e63f736dde6c35469e397d75feb7ff06101 100644 --- a/src/app/datalogger/main.cc +++ b/src/app/datalogger/main.cc @@ -127,6 +127,8 @@ void loop(void) hdc1080.getTemp(); } */ + hdc1080.measure(); + arch.delay_ms(10); kout << "HDC1080 temperature " << hdc1080.getTemp() << " degC" << endl; kout << "HDC1080 humidity " << hdc1080.getRH() << " %H" << endl; #endif @@ -253,6 +255,7 @@ int main(void) #ifdef CONFIG_driver_mpu9250 mpu9250.init(); + mpu9250.nineAxis(); #endif #ifdef CONFIG_driver_tsl2591 diff --git a/src/driver/hdc1080.cc b/src/driver/hdc1080.cc index af828fdb5878704ef96c1d6183cf5d848ab6d105..2ac983d2b746b63f34bf1b5ba74c8d32fb39d888 100644 --- a/src/driver/hdc1080.cc +++ b/src/driver/hdc1080.cc @@ -11,14 +11,15 @@ #include "driver/soft_i2c.h" #endif -float HDC1080::getTemp() +void HDC1080::measure() { txbuf[0] = 0x00; - i2c.xmit(address, 1, txbuf, 0, rxbuf); +} - arch.delay_ms(10); - +float HDC1080::getTemp() +{ + txbuf[0] = 0x00; i2c.xmit(address, 0, txbuf, 2, rxbuf); return (((unsigned int)rxbuf[0] << 8) | rxbuf[1]) * .00251770019531250000 - 40.; @@ -27,11 +28,6 @@ float HDC1080::getTemp() float HDC1080::getRH() { txbuf[0] = 0x01; - - i2c.xmit(address, 1, txbuf, 0, rxbuf); - - arch.delay_ms(10); - i2c.xmit(address, 0, txbuf, 2, rxbuf); return (((unsigned int)rxbuf[0] << 8) | rxbuf[1]) * .00152587890625000000;