summaryrefslogtreecommitdiff
path: root/esp8266
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-05-26 17:11:43 +0100
committerDamien George <damien.p.george@gmail.com>2016-05-26 17:11:43 +0100
commit45f3416816fd5d717887e3efdde4d3ce3ef2ff38 (patch)
treea6459b7b60c2182ffdc6a2e1bb9a764e4aba25a9 /esp8266
parent48a7ef0576f9c1cb71a07d1c01183b3872e2f762 (diff)
esp8266: Enable DHT C-level driver.
Exposed as esp.dht_readinto. Probably should go somewhere less port-specific.
Diffstat (limited to 'esp8266')
-rw-r--r--esp8266/Makefile7
-rw-r--r--esp8266/esp_mphal.h4
-rw-r--r--esp8266/modesp.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/esp8266/Makefile b/esp8266/Makefile
index 2d65b4bd6..9a7602702 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 866a5a94b..91fee2119 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 4b0c0e466..0c6cc423e 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