28 #include <libopencmsis/core_cm3.h> 29 #include <libopencm3/cm3/nvic.h> 30 #include <libopencm3/stm32/rcc.h> 31 #include <libopencm3/stm32/gpio.h> 32 #include <libopencm3/stm32/timer.h> 41 #define SENSOR_DHT22_TIMER 4 42 #define SENSOR_DHT22_CHANNEL 3 43 #define SENSOR_DHT22_JITTER 0.2 46 volatile bool sensor_dht22_measurement_received = false; 51 SENSOR_DHT22_HOST_START,
52 SENSOR_DHT22_HOST_STARTED,
53 SENSOR_DHT22_SLAVE_START,
54 SENSOR_DHT22_SLAVE_BIT,
159 case (SENSOR_DHT22_HOST_STARTED):
162 case (SENSOR_DHT22_SLAVE_START):
169 case (SENSOR_DHT22_SLAVE_BIT):
#define RCC_TIM_CH(x, y)
get RCC for port based on TIMx_CHy identifier
#define TIM_ISR(x)
get interrupt service routine for timer base on TIM identifier
#define SENSOR_DHT22_CHANNEL
channel used as input capture
static void sensor_dht22_reset(void)
reset all states
bool sensor_dht22_measurement_request(void)
request measurement from sensor
#define NVIC_TIM_IRQ(x)
get NVIC IRQ for timer base on TIM identifier
float temperature
temperature in °C (-40-80)
#define TIM_SR_CCIF(x)
get TIM_SR_CCxIF based on CHx identifier
#define TIM_DIER_CCIE(x)
get TIM_DIER_CCxIE based on CHx identifier
void sensor_dht22_setup(void)
setup peripherals to communicate with sensor
global definitions and methods (API)
#define TIM_CCR(x, y)
get TIM_CCRy register based on TIMx_CHy identifier
library to query measurements from Aosong DHT22 (aka.
float humidity
relative humidity in RH (0-100)
#define RCC_TIM(x)
get RCC for timer based on TIM identifier
struct sensor_dht22_measurement_t sensor_dht22_measurement_decode(void)
decode received measurement
#define TIM_CH_PIN(x, y)
get pin based on TIMx_CHy identifier
#define TIM_IC(x)
get TIM_IC based on CHx identifier
#define TIM_IC_IN_TI(x)
get TIM_IC_IN_TI based on CHx identifier
#define SENSOR_DHT22_JITTER
signal timing jitter tolerated in timing
volatile bool sensor_dht22_measurement_received
a measurement response has been received
#define SENSOR_DHT22_TIMER
timer peripheral
#define TIM_CH_PORT(x, y)
get port based on TIMx_CHy identifier
sensor_dht22_state_t
communication states
volatile uint8_t sensor_dht22_bit
the bit number being sent (MSb first), up to 40
enum sensor_dht22_state_t sensor_dht22_state
current communication state
#define TIM(x)
get TIM based on TIM identifier
measurement returned by sensor
volatile uint8_t sensor_dht22_bits[5]
the 40 bits (5 bytes) being sent by the device