hdc1000.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 PHYTEC Messtechnik GmbH
3  * 2017 Freie Universität Berlin
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser
6  * General Public License v2.1. See the file LICENSE in the top level
7  * directory for more details.
8  */
9 
10 #pragma once
11 
43 #include <stdint.h>
44 
45 #include "periph/i2c.h"
46 #include "hdc1000_regs.h"
47 
48 #ifdef __cplusplus
49 extern "C"
50 {
51 #endif
52 
64 #ifndef CONFIG_HDC1000_I2C_ADDRESS
65 #define CONFIG_HDC1000_I2C_ADDRESS (0x43)
66 #endif
67 
75 #ifndef CONFIG_HDC1000_CONVERSION_TIME
76 #define CONFIG_HDC1000_CONVERSION_TIME (26000)
77 #endif
83 enum {
84  HDC1000_OK = 0,
87  HDC1000_BUSERR = -3
88 };
89 
93 typedef enum {
94  HDC1000_11BIT = (HDC1000_TRES11 | HDC1000_HRES11),
95  HDC1000_14BIT = (HDC1000_TRES14 | HDC1000_HRES14)
97 
101 typedef struct {
103  uint8_t addr;
105  uint32_t renew_interval;
107 
111 typedef struct {
113 } hdc1000_t;
114 
125 int hdc1000_init(hdc1000_t *dev, const hdc1000_params_t *params);
126 
140 
151 int hdc1000_get_results(const hdc1000_t *dev, int16_t *temp, int16_t *hum);
152 
166 int hdc1000_read(const hdc1000_t *dev, int16_t *temp, int16_t *hum);
167 
183 int hdc1000_read_cached(const hdc1000_t *dev, int16_t *temp, int16_t *hum);
184 
185 #ifdef __cplusplus
186 }
187 #endif
188 
int hdc1000_trigger_conversion(const hdc1000_t *dev)
Trigger a new conversion.
int hdc1000_get_results(const hdc1000_t *dev, int16_t *temp, int16_t *hum)
Read conversion results for temperature and humidity.
int hdc1000_init(hdc1000_t *dev, const hdc1000_params_t *params)
Initialize the given HDC1000 device.
hdc1000_res_t
Possible resolution values.
Definition: hdc1000.h:93
int hdc1000_read_cached(const hdc1000_t *dev, int16_t *temp, int16_t *hum)
Extended read function including caching capability.
int hdc1000_read(const hdc1000_t *dev, int16_t *temp, int16_t *hum)
Convenience function for reading temperature and humidity.
@ HDC1000_NOBUS
errors while initializing the I2C bus
Definition: hdc1000.h:86
@ HDC1000_BUSERR
error during I2C communication
Definition: hdc1000.h:87
@ HDC1000_NODEV
no HDC1000 device found on the bus
Definition: hdc1000.h:85
@ HDC1000_OK
everything went as expected
Definition: hdc1000.h:84
@ HDC1000_14BIT
14-bit conversion
Definition: hdc1000.h:95
@ HDC1000_11BIT
11-bit conversion
Definition: hdc1000.h:94
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition: i2c.h:144
Register definitions for HDC1000 devices.
Low-level I2C peripheral driver interface definition.
Parameters needed for device initialization.
Definition: hdc1000.h:101
uint32_t renew_interval
interval for cache renewal
Definition: hdc1000.h:105
hdc1000_res_t res
resolution used for sampling temp and hum
Definition: hdc1000.h:104
uint8_t addr
address on that bus
Definition: hdc1000.h:103
i2c_t i2c
bus the device is connected to
Definition: hdc1000.h:102
Device descriptor for HDC1000 sensors.
Definition: hdc1000.h:111
hdc1000_params_t p
Configuration parameters.
Definition: hdc1000.h:112