Bluemix Demo program

Dependencies:   WNCInterface mbed-rtos mbed

Committer:
JMF
Date:
Wed Sep 28 00:56:47 2016 +0000
Revision:
0:6a929f0d0e58
Initial submission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:6a929f0d0e58 1 /* ===================================================================
JMF 0:6a929f0d0e58 2 Copyright © 2016, AVNET Inc.
JMF 0:6a929f0d0e58 3
JMF 0:6a929f0d0e58 4 Licensed under the Apache License, Version 2.0 (the "License");
JMF 0:6a929f0d0e58 5 you may not use this file except in compliance with the License.
JMF 0:6a929f0d0e58 6 You may obtain a copy of the License at
JMF 0:6a929f0d0e58 7
JMF 0:6a929f0d0e58 8 http://www.apache.org/licenses/LICENSE-2.0
JMF 0:6a929f0d0e58 9
JMF 0:6a929f0d0e58 10 Unless required by applicable law or agreed to in writing,
JMF 0:6a929f0d0e58 11 software distributed under the License is distributed on an
JMF 0:6a929f0d0e58 12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
JMF 0:6a929f0d0e58 13 either express or implied. See the License for the specific
JMF 0:6a929f0d0e58 14 language governing permissions and limitations under the License.
JMF 0:6a929f0d0e58 15
JMF 0:6a929f0d0e58 16 ======================================================================== */
JMF 0:6a929f0d0e58 17
JMF 0:6a929f0d0e58 18 #ifndef HTS221_H_
JMF 0:6a929f0d0e58 19 #define HTS221_H_
JMF 0:6a929f0d0e58 20
JMF 0:6a929f0d0e58 21 class HTS221 {
JMF 0:6a929f0d0e58 22 public:
JMF 0:6a929f0d0e58 23 HTS221(void);
JMF 0:6a929f0d0e58 24 int init(void);
JMF 0:6a929f0d0e58 25 int activate(void);
JMF 0:6a929f0d0e58 26 int deactivate(void);
JMF 0:6a929f0d0e58 27
JMF 0:6a929f0d0e58 28 int bduActivate(void);
JMF 0:6a929f0d0e58 29 int bduDeactivate(void);
JMF 0:6a929f0d0e58 30
JMF 0:6a929f0d0e58 31 int readHumidity(void);
JMF 0:6a929f0d0e58 32 double readTemperature(void);
JMF 0:6a929f0d0e58 33 private:
JMF 0:6a929f0d0e58 34 int storeCalibration(void);
JMF 0:6a929f0d0e58 35 unsigned char _h0_rH, _h1_rH;
JMF 0:6a929f0d0e58 36 unsigned int _T0_degC, _T1_degC;
JMF 0:6a929f0d0e58 37 unsigned int _H0_T0, _H1_T0;
JMF 0:6a929f0d0e58 38 unsigned int _T0_OUT, _T1_OUT;
JMF 0:6a929f0d0e58 39 double _temperature;
JMF 0:6a929f0d0e58 40 int _humidity;
JMF 0:6a929f0d0e58 41 unsigned char _address;
JMF 0:6a929f0d0e58 42
JMF 0:6a929f0d0e58 43 unsigned char readRegister(unsigned char slaveAddress, unsigned char regToRead);
JMF 0:6a929f0d0e58 44 int writeRegister(unsigned char slaveAddress, unsigned char regToWrite, unsigned char dataToWrite);
JMF 0:6a929f0d0e58 45 };
JMF 0:6a929f0d0e58 46
JMF 0:6a929f0d0e58 47 #define HTS221_ADDRESS 0xBF
JMF 0:6a929f0d0e58 48
JMF 0:6a929f0d0e58 49 //Define a few of the registers that we will be accessing on the HTS221
JMF 0:6a929f0d0e58 50 #define WHO_AM_I 0x0F
JMF 0:6a929f0d0e58 51 #define WHO_AM_I_RETURN 0xBC //This read-only register contains the device identifier, set to BCh
JMF 0:6a929f0d0e58 52
JMF 0:6a929f0d0e58 53 #define AVERAGE_REG 0x10 // To configure humidity/temperature average.
JMF 0:6a929f0d0e58 54 #define AVERAGE_DEFAULT 0x1B
JMF 0:6a929f0d0e58 55
JMF 0:6a929f0d0e58 56 /*
JMF 0:6a929f0d0e58 57 * [7] PD: power down control
JMF 0:6a929f0d0e58 58 * (0: power-down mode; 1: active mode)
JMF 0:6a929f0d0e58 59 *
JMF 0:6a929f0d0e58 60 * [6:3] Reserved
JMF 0:6a929f0d0e58 61 *
JMF 0:6a929f0d0e58 62 * [2] BDU: block data update
JMF 0:6a929f0d0e58 63 * (0: continuous update; 1: output registers not updated until MSB and LSB reading)
JMF 0:6a929f0d0e58 64 The BDU bit is used to inhibit the output register update between the reading of the upper
JMF 0:6a929f0d0e58 65 and lower register parts. In default mode (BDU = ?0?), the lower and upper register parts are
JMF 0:6a929f0d0e58 66 updated continuously. If it is not certain whether the read will be faster than output data rate,
JMF 0:6a929f0d0e58 67 it is recommended to set the BDU bit to ?1?. In this way, after the reading of the lower (upper)
JMF 0:6a929f0d0e58 68 register part, the content of that output register is not updated until the upper (lower) part is
JMF 0:6a929f0d0e58 69 read also.
JMF 0:6a929f0d0e58 70 *
JMF 0:6a929f0d0e58 71 * [1:0] ODR1, ODR0: output data rate selection (see table 17)
JMF 0:6a929f0d0e58 72 */
JMF 0:6a929f0d0e58 73 #define CTRL_REG1 0x20
JMF 0:6a929f0d0e58 74 #define POWER_UP 0x80
JMF 0:6a929f0d0e58 75 #define BDU_SET 0x4
JMF 0:6a929f0d0e58 76 #define ODR0_SET 0x1 // setting sensor reading period 1Hz
JMF 0:6a929f0d0e58 77
JMF 0:6a929f0d0e58 78 #define CTRL_REG2 0x21
JMF 0:6a929f0d0e58 79 #define CTRL_REG3 0x22
JMF 0:6a929f0d0e58 80 #define REG_DEFAULT 0x00
JMF 0:6a929f0d0e58 81
JMF 0:6a929f0d0e58 82 #define STATUS_REG 0x27
JMF 0:6a929f0d0e58 83 #define TEMPERATURE_READY 0x1
JMF 0:6a929f0d0e58 84 #define HUMIDITY_READY 0x2
JMF 0:6a929f0d0e58 85
JMF 0:6a929f0d0e58 86 #define HUMIDITY_L_REG 0x28
JMF 0:6a929f0d0e58 87 #define HUMIDITY_H_REG 0x29
JMF 0:6a929f0d0e58 88 #define TEMP_L_REG 0x2A
JMF 0:6a929f0d0e58 89 #define TEMP_H_REG 0x2B
JMF 0:6a929f0d0e58 90 /*
JMF 0:6a929f0d0e58 91 * calibration registry should be read for temperature and humidity calculation.
JMF 0:6a929f0d0e58 92 * Before the first calculation of temperature and humidity,
JMF 0:6a929f0d0e58 93 * the master reads out the calibration coefficients.
JMF 0:6a929f0d0e58 94 * will do at init phase
JMF 0:6a929f0d0e58 95 */
JMF 0:6a929f0d0e58 96 #define CALIB_START 0x30
JMF 0:6a929f0d0e58 97 #define CALIB_END 0x3F
JMF 0:6a929f0d0e58 98 /*
JMF 0:6a929f0d0e58 99 #define CALIB_T0_DEGC_X8 0x32
JMF 0:6a929f0d0e58 100 #define CALIB_T1_DEGC_X8 0x33
JMF 0:6a929f0d0e58 101 #define CALIB_T1_T0_MSB 0x35
JMF 0:6a929f0d0e58 102 #define CALIB_T0_OUT_L 0x3C
JMF 0:6a929f0d0e58 103 #define CALIB_T0_OUT_H 0x3D
JMF 0:6a929f0d0e58 104 #define CALIB_T1_OUT_L 0x3E
JMF 0:6a929f0d0e58 105 #define CALIB_T1_OUT_H 0x3F
JMF 0:6a929f0d0e58 106 */
JMF 0:6a929f0d0e58 107
JMF 0:6a929f0d0e58 108 #endif