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.
HP20x_dev.h
00001 /*Portet from arduino 00002 00003 00004 * File name : HP20x_dev.h 00005 * Description: Driver for I2C PRECISION BAROMETER AND ALTIMETER [HP206C] 00006 * Author : Oliver Wang from Seeed studio 00007 * Version : V0.1 00008 * Create Time: 2014/04 00009 * Change Log : 00010 */ 00011 #ifndef _HP20X_DEV_H 00012 #define _HP20X_DEV_H 00013 /****************************************************************************/ 00014 /*** Including Files ***/ 00015 /****************************************************************************/ 00016 00017 #include "mbed.h" 00018 /****************************************************************************/ 00019 /*** Macro Definitions ***/ 00020 /****************************************************************************/ 00021 00022 00023 #define HP20X_ADDRESS 0xEC 00024 //#define HP20X_I2C_DEV_ID (0xEC)>>1 //CSB PIN is VDD level(address is 0x76) 00025 //#define HP20X_I2C_DEV_ID2 (0XEE)>>1 //CSB PIN is GND level(address is 0x77) 00026 #define HP20X_SOFT_RST 0x06 //Soft reset the device 00027 #define HP20X_WR_CONVERT_CMD 0x40 00028 #define HP20X_CONVERT_OSR4096 0<<2 00029 #define HP20X_CONVERT_OSR2048 1<<2 00030 #define HP20X_CONVERT_OSR1024 2<<2 00031 #define HP20X_CONVERT_OSR512 3<<2 00032 #define HP20X_CONVERT_OSR256 4<<2 00033 #define HP20X_CONVERT_OSR128 5<<2 00034 00035 #define HP20X_READ_P 0x30 //Read the pressure value only 00036 #define HP20X_READ_A 0x31 //Read the altitude value only 00037 #define HP20X_READ_T 0x32 //Read the temperature value only 00038 #define HP20X_READ_PT 0x10 //Read the temperature and pressure values 00039 #define HP20X_READ_AT 0x11 //Read the temperature and altitude values 00040 #define HP20X_READ_CAL 0X28 //Re-calibrate the internal analog blocks 00041 00042 #define HP20X_WR_REG_MODE 0xC0 00043 #define HP20X_RD_REG_MODE 0x80 00044 00045 #define ERR_WR_DEVID_NACK 0x01 00046 #define ERR_RD_DEVID_NACK 0x02 00047 #define ERR_WR_REGADD_NACK 0x04 00048 #define ERR_WR_REGCMD_NACK 0x08 00049 #define ERR_WR_DATA_NACK 0x10 00050 #define ERR_RD_DATA_MISMATCH 0x20 00051 00052 #define I2C_DID_WR_MASK 0xFE 00053 #define I2C_DID_RD_MASK 0x01 00054 00055 #define T_WIN_EN 0X01 00056 #define PA_WIN_EN 0X02 00057 #define T_TRAV_EN 0X04 00058 #define PA_TRAV_EN 0X08 00059 #define PA_RDY_EN 0X20 00060 #define T_RDY_EN 0X10 00061 00062 #define T_WIN_CFG 0X01 00063 #define PA_WIN_CFG 0X02 00064 #define PA_MODE_P 0X00 00065 #define PA_MODE_A 0X40 00066 00067 #define T_TRAV_CFG 0X04 00068 00069 #define OK_HP20X_DEV 0X80 //HP20x_dev successfully initialized 00070 #define REG_PARA 0X0F //Status register 00071 00072 /****************************************************************************/ 00073 /*** Class Definitions ***/ 00074 /****************************************************************************/ 00075 class HP20x_dev 00076 { 00077 /* Public variables and functions */ 00078 public: 00079 00080 HP20x_dev(PinName p_sda, PinName p_scl); 00081 00082 char OSR_CFG; 00083 int OSR_ConvertTime; 00084 /* Constructor */ 00085 void reset(); 00086 char isAvailable(); 00087 00088 /* Read sensor data */ 00089 //long ReadTemperature(void); 00090 long ReadPressure(void); 00091 // long ReadAltitude(void); 00092 protected: 00093 I2C i2c; 00094 void writeByte(uint8_t address, uint8_t subAddress, uint8_t data); 00095 char readByte(uint8_t address, uint8_t subAddress); 00096 00097 00098 00099 }; 00100 //extern HP20x_dev HP20x; 00101 #endif
Generated on Sat Jul 16 2022 09:38:04 by
1.7.2