summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/dht/dht.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/dht/dht.c b/drivers/dht/dht.c
index 5d92ae39a..70371cc01 100644
--- a/drivers/dht/dht.c
+++ b/drivers/dht/dht.c
@@ -32,6 +32,11 @@
#include "extmod/machine_pulse.h"
#include "drivers/dht/dht.h"
+// Allow the open-drain-high call to be DHT specific for ports that need it
+#ifndef mp_hal_pin_od_high_dht
+#define mp_hal_pin_od_high_dht mp_hal_pin_od_high
+#endif
+
STATIC mp_obj_t dht_readinto(mp_obj_t pin_in, mp_obj_t buf_in) {
mp_hal_pin_obj_t pin = mp_hal_get_pin_obj(pin_in);
mp_hal_pin_open_drain(pin);
@@ -44,7 +49,7 @@ STATIC mp_obj_t dht_readinto(mp_obj_t pin_in, mp_obj_t buf_in) {
}
// issue start command
- mp_hal_pin_od_high(pin);
+ mp_hal_pin_od_high_dht(pin);
mp_hal_delay_ms(250);
mp_hal_pin_od_low(pin);
mp_hal_delay_ms(18);
@@ -52,7 +57,7 @@ STATIC mp_obj_t dht_readinto(mp_obj_t pin_in, mp_obj_t buf_in) {
mp_uint_t irq_state = mp_hal_quiet_timing_enter();
// release the line so the device can respond
- mp_hal_pin_od_high(pin);
+ mp_hal_pin_od_high_dht(pin);
mp_hal_delay_us_fast(10);
// wait for device to respond