Support for non 16mhz devices

Added constructor parameter to allow for different timing needs. It has
the a default value of 6 which is the original value, so it should be
backwards compatible
This commit is contained in:
Lars Kirkeskov Sørup 2012-12-29 19:14:51 +01:00
parent 71ee113a7b
commit ad73fab623
2 changed files with 5 additions and 4 deletions

View File

@ -6,9 +6,10 @@ written by Adafruit Industries
#include "DHT.h" #include "DHT.h"
DHT::DHT(uint8_t pin, uint8_t type) { DHT::DHT(uint8_t pin, uint8_t type, uint8_t count) {
_pin = pin; _pin = pin;
_type = type; _type = type;
_count = count;
firstreading = true; firstreading = true;
} }
@ -129,7 +130,7 @@ boolean DHT::read(void) {
if ((i >= 4) && (i%2 == 0)) { if ((i >= 4) && (i%2 == 0)) {
// shove each bit into the storage bytes // shove each bit into the storage bytes
data[j/8] <<= 1; data[j/8] <<= 1;
if (counter > 6) if (counter > _count)
data[j/8] |= 1; data[j/8] |= 1;
j++; j++;
} }

4
DHT.h
View File

@ -23,13 +23,13 @@ written by Adafruit Industries
class DHT { class DHT {
private: private:
uint8_t data[6]; uint8_t data[6];
uint8_t _pin, _type; uint8_t _pin, _type, _count;
boolean read(void); boolean read(void);
unsigned long _lastreadtime; unsigned long _lastreadtime;
boolean firstreading; boolean firstreading;
public: public:
DHT(uint8_t pin, uint8_t type); DHT(uint8_t pin, uint8_t type, uint8_t count=6);
void begin(void); void begin(void);
float readTemperature(bool S=false); float readTemperature(bool S=false);
float convertCtoF(float); float convertCtoF(float);