From 45f3416816fd5d717887e3efdde4d3ce3ef2ff38 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 26 May 2016 17:11:43 +0100 Subject: [PATCH] esp8266: Enable DHT C-level driver. Exposed as esp.dht_readinto. Probably should go somewhere less port-specific. --- esp8266/Makefile | 7 ++++++- esp8266/esp_mphal.h | 4 ++++ esp8266/modesp.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/esp8266/Makefile b/esp8266/Makefile index 2d65b4bd6d..9a76027026 100644 --- a/esp8266/Makefile +++ b/esp8266/Makefile @@ -124,6 +124,10 @@ LIB_SRC_C = $(addprefix lib/,\ fatfs/option/ccsbcs.c \ ) +DRIVERS_SRC_C = $(addprefix drivers/,\ + dht/dht.c \ + ) + SRC_S = \ gchelper.s \ @@ -134,10 +138,11 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o)) OBJ += $(addprefix $(BUILD)/, $(STM_SRC_C:.c=.o)) OBJ += $(addprefix $(BUILD)/, $(EXTMOD_SRC_C:.c=.o)) OBJ += $(addprefix $(BUILD)/, $(LIB_SRC_C:.c=.o)) +OBJ += $(addprefix $(BUILD)/, $(DRIVERS_SRC_C:.c=.o)) #OBJ += $(BUILD)/pins_$(BOARD).o # List of sources for qstr extraction -SRC_QSTR += $(SRC_C) $(STM_SRC_C) $(EXTMOD_SRC_C) +SRC_QSTR += $(SRC_C) $(STM_SRC_C) $(EXTMOD_SRC_C) $(DRIVERS_SRC_C) # Append any auto-generated sources that are needed by sources listed in SRC_QSTR SRC_QSTR_AUTO_DEPS += diff --git a/esp8266/esp_mphal.h b/esp8266/esp_mphal.h index 866a5a94bd..91fee21198 100644 --- a/esp8266/esp_mphal.h +++ b/esp8266/esp_mphal.h @@ -28,6 +28,7 @@ #define _INCLUDED_MPHAL_H_ #include "py/ringbuf.h" +#include "xtirq.h" void mp_keyboard_interrupt(void); extern int interrupt_char; @@ -62,6 +63,9 @@ void ets_event_poll(void); #include "osapi.h" #define mp_hal_delay_us_fast(us) os_delay_us(us) +#define mp_hal_quiet_timing_enter() disable_irq() +#define mp_hal_quiet_timing_exit(irq_state) enable_irq(irq_state) + // C-level pin HAL #include "etshal.h" #include "gpio.h" diff --git a/esp8266/modesp.c b/esp8266/modesp.c index 4b0c0e4668..0c6cc423e1 100644 --- a/esp8266/modesp.c +++ b/esp8266/modesp.c @@ -34,6 +34,7 @@ #include "py/runtime.h" #include "py/mperrno.h" #include "py/mphal.h" +#include "drivers/dht/dht.h" #include "netutils.h" #include "queue.h" #include "ets_sys.h" @@ -691,6 +692,7 @@ STATIC const mp_map_elem_t esp_module_globals_table[] = { #endif { MP_OBJ_NEW_QSTR(MP_QSTR_neopixel_write), (mp_obj_t)&esp_neopixel_write_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_apa102_write), (mp_obj_t)&esp_apa102_write_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_dht_readinto), (mp_obj_t)&dht_readinto_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_freemem), (mp_obj_t)&esp_freemem_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_meminfo), (mp_obj_t)&esp_meminfo_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_info), (mp_obj_t)&pyb_info_obj }, // TODO delete/rename/move elsewhere