Skip to content

Commit a75041b

Browse files
committed
plasma: Support pins given as machine.Pin obj.
1 parent 63fbe91 commit a75041b

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

micropython/modules/plasma/plasma.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ using namespace plasma;
99
extern "C" {
1010
#include "plasma.h"
1111
#include "py/builtin.h"
12+
#include "machine_pin.h"
1213

1314
typedef struct _mp_obj_float_t {
1415
mp_obj_base_t base;
@@ -64,7 +65,7 @@ mp_obj_t PlasmaWS2812_make_new(const mp_obj_type_t *type, size_t n_args, size_t
6465
{ MP_QSTR_num_leds, MP_ARG_REQUIRED | MP_ARG_INT },
6566
{ MP_QSTR_pio, MP_ARG_REQUIRED | MP_ARG_INT },
6667
{ MP_QSTR_sm, MP_ARG_REQUIRED | MP_ARG_INT },
67-
{ MP_QSTR_dat, MP_ARG_REQUIRED | MP_ARG_INT },
68+
{ MP_QSTR_dat, MP_ARG_REQUIRED | MP_ARG_OBJ },
6869
{ MP_QSTR_freq, MP_ARG_INT, {.u_int = WS2812::DEFAULT_SERIAL_FREQ} },
6970
{ MP_QSTR_buffer, MP_ARG_OBJ, {.u_obj = nullptr} },
7071
{ MP_QSTR_rgbw, MP_ARG_BOOL, {.u_bool = false} },
@@ -78,7 +79,7 @@ mp_obj_t PlasmaWS2812_make_new(const mp_obj_type_t *type, size_t n_args, size_t
7879
int num_leds = args[ARG_num_leds].u_int;
7980
PIO pio = args[ARG_pio].u_int == 0 ? pio0 : pio1;
8081
int sm = args[ARG_sm].u_int;
81-
int dat = args[ARG_dat].u_int;
82+
int dat = mp_hal_get_pin_obj(args[ARG_dat].u_obj);
8283
int freq = args[ARG_freq].u_int;
8384
bool rgbw = args[ARG_rgbw].u_bool;
8485
WS2812::COLOR_ORDER color_order = (WS2812::COLOR_ORDER)args[ARG_color_order].u_int;
@@ -269,8 +270,8 @@ mp_obj_t PlasmaAPA102_make_new(const mp_obj_type_t *type, size_t n_args, size_t
269270
{ MP_QSTR_num_leds, MP_ARG_REQUIRED | MP_ARG_INT },
270271
{ MP_QSTR_pio, MP_ARG_REQUIRED | MP_ARG_INT },
271272
{ MP_QSTR_sm, MP_ARG_REQUIRED | MP_ARG_INT },
272-
{ MP_QSTR_dat, MP_ARG_REQUIRED | MP_ARG_INT },
273-
{ MP_QSTR_clk, MP_ARG_REQUIRED | MP_ARG_INT },
273+
{ MP_QSTR_dat, MP_ARG_REQUIRED | MP_ARG_OBJ },
274+
{ MP_QSTR_clk, MP_ARG_REQUIRED | MP_ARG_OBJ },
274275
{ MP_QSTR_freq, MP_ARG_INT, {.u_int = APA102::DEFAULT_SERIAL_FREQ} },
275276
{ MP_QSTR_buffer, MP_ARG_OBJ, {.u_obj = nullptr} },
276277
};
@@ -282,8 +283,8 @@ mp_obj_t PlasmaAPA102_make_new(const mp_obj_type_t *type, size_t n_args, size_t
282283
int num_leds = args[ARG_num_leds].u_int;
283284
PIO pio = args[ARG_pio].u_int == 0 ? pio0 : pio1;
284285
int sm = args[ARG_sm].u_int;
285-
int dat = args[ARG_dat].u_int;
286-
int clk = args[ARG_clk].u_int;
286+
int dat = mp_hal_get_pin_obj(args[ARG_dat].u_obj);
287+
int clk = mp_hal_get_pin_obj(args[ARG_clk].u_obj);
287288
int freq = args[ARG_freq].u_int;
288289

289290
APA102::RGB *buffer = nullptr;

0 commit comments

Comments
 (0)