Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FT6206 SDFileSystem SPI_TFT_ILI9341 TFT_fonts
Fork of ATT_AWS_IoT_demo by
Diff: Sensors/Temperature/HTS221.h
- Revision:
- 20:ee34856ae510
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Sensors/Temperature/HTS221.h Wed Dec 07 20:37:20 2016 +0000
@@ -0,0 +1,93 @@
+
+#ifndef HTS221_H_
+#define HTS221_H_
+
+class HTS221 {
+public:
+ HTS221(void);
+ int begin(void);
+ int activate(void);
+ int deactivate(void);
+
+ int bduActivate(void);
+ int bduDeactivate(void);
+
+ int readHumidity(void);
+ double readTemperature(void);
+private:
+ int storeCalibration(void);
+ unsigned char _h0_rH, _h1_rH;
+ unsigned int _T0_degC, _T1_degC;
+ unsigned int _H0_T0, _H1_T0;
+ unsigned int _T0_OUT, _T1_OUT;
+ double _temperature;
+ int _humidity;
+ unsigned char _address;
+
+ unsigned char readRegister(unsigned char slaveAddress, unsigned char regToRead);
+ int writeRegister(unsigned char slaveAddress, unsigned char regToWrite, unsigned char dataToWrite);
+};
+
+#define HTS221_ADDRESS 0xBF
+
+//Define a few of the registers that we will be accessing on the HTS221
+#define WHO_AM_I 0x0F
+#define WHO_AM_I_RETURN 0xBC //This read-only register contains the device identifier, set to BCh
+
+#define AVERAGE_REG 0x10 // To configure humidity/temperature average.
+#define AVERAGE_DEFAULT 0x1B
+
+/*
+ * [7] PD: power down control
+ * (0: power-down mode; 1: active mode)
+ *
+ * [6:3] Reserved
+ *
+ * [2] BDU: block data update
+ * (0: continuous update; 1: output registers not updated until MSB and LSB reading)
+The BDU bit is used to inhibit the output register update between the reading of the upper
+and lower register parts. In default mode (BDU = ?0?), the lower and upper register parts are
+updated continuously. If it is not certain whether the read will be faster than output data rate,
+it is recommended to set the BDU bit to ?1?. In this way, after the reading of the lower (upper)
+register part, the content of that output register is not updated until the upper (lower) part is
+read also.
+ *
+ * [1:0] ODR1, ODR0: output data rate selection (see table 17)
+ */
+#define CTRL_REG1 0x20
+#define POWER_UP 0x80
+#define BDU_SET 0x4
+#define ODR0_SET 0x1 // setting sensor reading period 1Hz
+
+#define CTRL_REG2 0x21
+#define CTRL_REG3 0x22
+#define REG_DEFAULT 0x00
+
+#define STATUS_REG 0x27
+#define TEMPERATURE_READY 0x1
+#define HUMIDITY_READY 0x2
+
+#define HUMIDITY_L_REG 0x28
+#define HUMIDITY_H_REG 0x29
+#define TEMP_L_REG 0x2A
+#define TEMP_H_REG 0x2B
+/*
+ * calibration registry should be read for temperature and humidity calculation.
+ * Before the first calculation of temperature and humidity,
+ * the master reads out the calibration coefficients.
+ * will do at init phase
+ */
+#define CALIB_START 0x30
+#define CALIB_END 0x3F
+/*
+#define CALIB_T0_DEGC_X8 0x32
+#define CALIB_T1_DEGC_X8 0x33
+#define CALIB_T1_T0_MSB 0x35
+#define CALIB_T0_OUT_L 0x3C
+#define CALIB_T0_OUT_H 0x3D
+#define CALIB_T1_OUT_L 0x3E
+#define CALIB_T1_OUT_H 0x3F
+ */
+
+#endif
+
