Fix for slower boards. Use uint16_t in expectPulse loop to increase sampling rate and avoid bad readings.

Tested on atmega328 @ 8MHz and Feather M0 @ 48MHz
This commit is contained in:
Michel Metzger 2017-11-02 22:53:50 -04:00
parent c978977718
commit b07db5af21

View File

@ -235,7 +235,7 @@ boolean DHT::read(bool force) {
// in the very latest IDE versions): // in the very latest IDE versions):
// https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_pulse.c // https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_pulse.c
uint32_t DHT::expectPulse(bool level) { uint32_t DHT::expectPulse(bool level) {
uint32_t count = 0; uint16_t count = 0;
// On AVR platforms use direct GPIO port access as it's much faster and better // On AVR platforms use direct GPIO port access as it's much faster and better
// for catching pulses that are 10's of microseconds in length: // for catching pulses that are 10's of microseconds in length:
#ifdef __AVR #ifdef __AVR