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.
HTS221.h@36:382cb978bddc, 2016-08-31 (annotated)
- Committer:
- sveljko
- Date:
- Wed Aug 31 18:04:30 2016 +0000
- Revision:
- 36:382cb978bddc
- Parent:
- 28:886833917643
Fixed "gobbling" of the last character in received message (from the subscribe transaction);
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| JMF | 0:9d5134074d84 | 1 | |
| JMF | 0:9d5134074d84 | 2 | #ifndef HTS221_H_ | 
| JMF | 0:9d5134074d84 | 3 | #define HTS221_H_ | 
| JMF | 0:9d5134074d84 | 4 | |
| JMF | 0:9d5134074d84 | 5 | class HTS221 { | 
| JMF | 0:9d5134074d84 | 6 | public: | 
| JMF | 0:9d5134074d84 | 7 | HTS221(void); | 
| JMF | 0:9d5134074d84 | 8 | int begin(void); | 
| JMF | 0:9d5134074d84 | 9 | int activate(void); | 
| JMF | 0:9d5134074d84 | 10 | int deactivate(void); | 
| JMF | 0:9d5134074d84 | 11 | |
| JMF | 0:9d5134074d84 | 12 | int bduActivate(void); | 
| JMF | 0:9d5134074d84 | 13 | int bduDeactivate(void); | 
| JMF | 0:9d5134074d84 | 14 | |
| JMF | 0:9d5134074d84 | 15 | int readHumidity(void); | 
| JMF | 0:9d5134074d84 | 16 | double readTemperature(void); | 
| JMF | 0:9d5134074d84 | 17 | private: | 
| JMF | 0:9d5134074d84 | 18 | int storeCalibration(void); | 
| JMF | 0:9d5134074d84 | 19 | unsigned char _h0_rH, _h1_rH; | 
| JMF | 0:9d5134074d84 | 20 | unsigned int _T0_degC, _T1_degC; | 
| JMF | 0:9d5134074d84 | 21 | unsigned int _H0_T0, _H1_T0; | 
| JMF | 0:9d5134074d84 | 22 | unsigned int _T0_OUT, _T1_OUT; | 
| JMF | 0:9d5134074d84 | 23 | double _temperature; | 
| JMF | 0:9d5134074d84 | 24 | int _humidity; | 
| JMF | 0:9d5134074d84 | 25 | unsigned char _address; | 
| JMF | 0:9d5134074d84 | 26 | |
| JMF | 0:9d5134074d84 | 27 | unsigned char readRegister(unsigned char slaveAddress, unsigned char regToRead); | 
| JMF | 0:9d5134074d84 | 28 | int writeRegister(unsigned char slaveAddress, unsigned char regToWrite, unsigned char dataToWrite); | 
| JMF | 0:9d5134074d84 | 29 | }; | 
| JMF | 0:9d5134074d84 | 30 | |
| stefanrousseau | 11:e6602513730f | 31 | #define HTS221_ADDRESS 0xBF | 
| JMF | 0:9d5134074d84 | 32 | |
| JMF | 0:9d5134074d84 | 33 | //Define a few of the registers that we will be accessing on the HTS221 | 
| JMF | 0:9d5134074d84 | 34 | #define WHO_AM_I 0x0F | 
| JMF | 0:9d5134074d84 | 35 | #define WHO_AM_I_RETURN 0xBC //This read-only register contains the device identifier, set to BCh | 
| JMF | 0:9d5134074d84 | 36 | |
| JMF | 0:9d5134074d84 | 37 | #define AVERAGE_REG 0x10 // To configure humidity/temperature average. | 
| JMF | 0:9d5134074d84 | 38 | #define AVERAGE_DEFAULT 0x1B | 
| JMF | 0:9d5134074d84 | 39 | |
| JMF | 0:9d5134074d84 | 40 | /* | 
| JMF | 0:9d5134074d84 | 41 | * [7] PD: power down control | 
| JMF | 0:9d5134074d84 | 42 | * (0: power-down mode; 1: active mode) | 
| JMF | 0:9d5134074d84 | 43 | * | 
| JMF | 0:9d5134074d84 | 44 | * [6:3] Reserved | 
| JMF | 0:9d5134074d84 | 45 | * | 
| JMF | 0:9d5134074d84 | 46 | * [2] BDU: block data update | 
| JMF | 0:9d5134074d84 | 47 | * (0: continuous update; 1: output registers not updated until MSB and LSB reading) | 
| JMF | 0:9d5134074d84 | 48 | The BDU bit is used to inhibit the output register update between the reading of the upper | 
| JMF | 0:9d5134074d84 | 49 | and lower register parts. In default mode (BDU = ?0?), the lower and upper register parts are | 
| JMF | 0:9d5134074d84 | 50 | updated continuously. If it is not certain whether the read will be faster than output data rate, | 
| JMF | 0:9d5134074d84 | 51 | it is recommended to set the BDU bit to ?1?. In this way, after the reading of the lower (upper) | 
| JMF | 0:9d5134074d84 | 52 | register part, the content of that output register is not updated until the upper (lower) part is | 
| JMF | 0:9d5134074d84 | 53 | read also. | 
| JMF | 0:9d5134074d84 | 54 | * | 
| JMF | 0:9d5134074d84 | 55 | * [1:0] ODR1, ODR0: output data rate selection (see table 17) | 
| JMF | 0:9d5134074d84 | 56 | */ | 
| JMF | 0:9d5134074d84 | 57 | #define CTRL_REG1 0x20 | 
| JMF | 0:9d5134074d84 | 58 | #define POWER_UP 0x80 | 
| JMF | 0:9d5134074d84 | 59 | #define BDU_SET 0x4 | 
| JMF | 0:9d5134074d84 | 60 | #define ODR0_SET 0x1 // setting sensor reading period 1Hz | 
| JMF | 0:9d5134074d84 | 61 | |
| JMF | 0:9d5134074d84 | 62 | #define CTRL_REG2 0x21 | 
| JMF | 0:9d5134074d84 | 63 | #define CTRL_REG3 0x22 | 
| JMF | 0:9d5134074d84 | 64 | #define REG_DEFAULT 0x00 | 
| JMF | 0:9d5134074d84 | 65 | |
| JMF | 0:9d5134074d84 | 66 | #define STATUS_REG 0x27 | 
| JMF | 0:9d5134074d84 | 67 | #define TEMPERATURE_READY 0x1 | 
| JMF | 0:9d5134074d84 | 68 | #define HUMIDITY_READY 0x2 | 
| JMF | 0:9d5134074d84 | 69 | |
| JMF | 0:9d5134074d84 | 70 | #define HUMIDITY_L_REG 0x28 | 
| JMF | 0:9d5134074d84 | 71 | #define HUMIDITY_H_REG 0x29 | 
| JMF | 0:9d5134074d84 | 72 | #define TEMP_L_REG 0x2A | 
| JMF | 0:9d5134074d84 | 73 | #define TEMP_H_REG 0x2B | 
| JMF | 0:9d5134074d84 | 74 | /* | 
| JMF | 0:9d5134074d84 | 75 | * calibration registry should be read for temperature and humidity calculation. | 
| JMF | 0:9d5134074d84 | 76 | * Before the first calculation of temperature and humidity, | 
| JMF | 0:9d5134074d84 | 77 | * the master reads out the calibration coefficients. | 
| JMF | 0:9d5134074d84 | 78 | * will do at init phase | 
| JMF | 0:9d5134074d84 | 79 | */ | 
| JMF | 0:9d5134074d84 | 80 | #define CALIB_START 0x30 | 
| JMF | 0:9d5134074d84 | 81 | #define CALIB_END 0x3F | 
| JMF | 0:9d5134074d84 | 82 | /* | 
| JMF | 0:9d5134074d84 | 83 | #define CALIB_T0_DEGC_X8 0x32 | 
| JMF | 0:9d5134074d84 | 84 | #define CALIB_T1_DEGC_X8 0x33 | 
| JMF | 0:9d5134074d84 | 85 | #define CALIB_T1_T0_MSB 0x35 | 
| JMF | 0:9d5134074d84 | 86 | #define CALIB_T0_OUT_L 0x3C | 
| JMF | 0:9d5134074d84 | 87 | #define CALIB_T0_OUT_H 0x3D | 
| JMF | 0:9d5134074d84 | 88 | #define CALIB_T1_OUT_L 0x3E | 
| JMF | 0:9d5134074d84 | 89 | #define CALIB_T1_OUT_H 0x3F | 
| JMF | 0:9d5134074d84 | 90 | */ | 
| JMF | 0:9d5134074d84 | 91 | |
| JMF | 0:9d5134074d84 | 92 | #endif |