DHT22 library, based on Simon Cooksey's. Improved with some error checking and more rigid timing (interrupts off).
Fork of lib_dht22 by
dht22.h
- Committer:
- co657_frmb
- Date:
- 2016-11-03
- Revision:
- 3:40df3c72813f
- Parent:
- 1:10ec58346011
- Child:
- 4:30a98da09c59
File content as of revision 3:40df3c72813f:
/* * (C) The University of Kent and Simon Cooksey 2015. */ #ifndef __DHT22_h_ #define __DHT22_h_ // We'll pick a point to decide if a signal is 1 or 0 from. #define DHT22_SIGNAL_HIGH_LOW_BOUNDARY 40 // uS #define DHT22_START_BIT_TIME 1000 // uS #define DHT22_START_BIT_RESPONSE 80 // uS typedef struct { int temp; int humidity; uint8_t checksum; char dummy[3]; } DHT22_data_t; class DHT22 { public: DHT22 (PinName pin) : dht22_s (pin), debug (PTB19) { dht22_s.input (); isinput = 1; } int read (DHT22_data_t *ptr); private: DigitalInOut dht22_s; int isinput; DigitalOut debug; void wait_2us (void); void setinput (void); void setoutput (void); int wait_for_level (int lvl, const int max); void send_start (void); int wait_start (void); int read_byte (void); }; #endif // __DHT22_h_