summaryrefslogtreecommitdiff
path: root/esp8266/modesp.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-02-11 13:19:11 +0000
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-03-26 10:55:21 +0200
commit3962766be08f0ccd81bedab1a5d1d8f6468f972e (patch)
treeb119f29d21f591bb94b0c6605738a39d092ca8f5 /esp8266/modesp.c
parentb62beadae01f65d7751d26d82e35d56925f4e6d9 (diff)
esp8266: Add esp.neopixel_write function to bit-bang WS2812 data.
Diffstat (limited to 'esp8266/modesp.c')
-rw-r--r--esp8266/modesp.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/esp8266/modesp.c b/esp8266/modesp.c
index 73cfc4275..18859ead8 100644
--- a/esp8266/modesp.c
+++ b/esp8266/modesp.c
@@ -39,6 +39,8 @@
#include "espconn.h"
#include "spi_flash.h"
#include "utils.h"
+#include "espneopixel.h"
+#include "modpyb.h"
#define MODESP_ESPCONN (0)
@@ -573,6 +575,15 @@ STATIC mp_obj_t esp_flash_erase(mp_obj_t sector_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp_flash_erase_obj, esp_flash_erase);
+STATIC mp_obj_t esp_neopixel_write_(mp_obj_t pin, mp_obj_t buf, mp_obj_t is800k) {
+ mp_buffer_info_t bufinfo;
+ mp_get_buffer_raise(buf, &bufinfo, MP_BUFFER_READ);
+ esp_neopixel_write(mp_obj_get_pin_obj(pin)->phys_port,
+ (uint8_t*)bufinfo.buf, bufinfo.len, mp_obj_is_true(is800k));
+ return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_3(esp_neopixel_write_obj, esp_neopixel_write_);
+
STATIC const mp_map_elem_t esp_module_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_esp) },
@@ -586,6 +597,7 @@ STATIC const mp_map_elem_t esp_module_globals_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&esp_socket_type },
{ MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&esp_getaddrinfo_obj },
#endif
+ { MP_OBJ_NEW_QSTR(MP_QSTR_neopixel_write), (mp_obj_t)&esp_neopixel_write_obj },
#if MODESP_INCLUDE_CONSTANTS
{ MP_OBJ_NEW_QSTR(MP_QSTR_MODE_11B),