|
20 | 20 | #include <zephyr/drivers/uart.h> |
21 | 21 | #include <zephyr/dt-bindings/gpio/gpio.h> |
22 | 22 | #include <zephyr/kernel.h> |
| 23 | +#include <zephyr/drivers/led_strip.h> |
23 | 24 |
|
24 | 25 | #include <chrono> |
25 | 26 | #include <cmath> |
|
32 | 33 | #include "../Utils/util.h" |
33 | 34 | #include "primitives.h" |
34 | 35 |
|
35 | | -#define ALL_PRIMITIVES 9 |
| 36 | +#define ALL_PRIMITIVES 7 |
36 | 37 |
|
37 | 38 | // Global index for installing primitives |
38 | 39 | int prim_index = 0; |
@@ -262,53 +263,9 @@ def_prim(print_int, oneToNoneU32) { |
262 | 263 | return true; |
263 | 264 | } |
264 | 265 |
|
265 | | -#include <zephyr/drivers/led_strip.h> |
266 | | -#define RGB(_r, _g, _b) { .r = (_r), .g = (_g), .b = (_b) } |
267 | | -static const struct device *const strip = DEVICE_DT_GET(DT_ALIAS(led_strip)); |
| 266 | +static const device *const strip = DEVICE_DT_GET(DT_ALIAS(led_strip)); |
268 | 267 | const size_t strip_length = 64;//led_strip_length(device); |
269 | | -struct led_rgb pixels[strip_length] = {0}; |
270 | | - |
271 | | -void fun() { |
272 | | - size_t color = 0; |
273 | | - int rc; |
274 | | - |
275 | | - if (device_is_ready(strip)) { |
276 | | - printf("Found LED strip device %s\n", strip->name); |
277 | | - } else { |
278 | | - printf("LED strip device %s is not ready\n", strip->name); |
279 | | - return; |
280 | | - } |
281 | | - |
282 | | - printf("Displaying pattern on strip\n"); |
283 | | - const struct led_rgb colors[] = { |
284 | | - RGB(16, 0x00, 0x00), // red |
285 | | - RGB(0x00, 16, 0x00), // green |
286 | | - RGB(0x00, 0x00, 16), // blue |
287 | | - }; |
288 | | - size_t width = 3; |
289 | | - while (1) { |
290 | | - for (size_t cursor = 0; cursor < ARRAY_SIZE(pixels) - width + 1; cursor++) { |
291 | | - memset(&pixels, 0x00, sizeof(pixels)); |
292 | | - for (size_t i = 0; i < width; i++) { |
293 | | - memcpy(&pixels[cursor + i], &colors[color], sizeof(struct led_rgb)); |
294 | | - color = (color + 1) % ARRAY_SIZE(colors); |
295 | | - } |
296 | | - |
297 | | - printf("Update strip!\n"); |
298 | | - rc = led_strip_update_rgb(strip, pixels, strip_length); |
299 | | - if (rc) { |
300 | | - printf("couldn't update strip: %d", rc); |
301 | | - } |
302 | | - |
303 | | - k_sleep(K_MSEC(100)); |
304 | | - } |
305 | | - } |
306 | | -} |
307 | | - |
308 | | -def_prim(led_fun, NoneToNoneU32) { |
309 | | - fun(); |
310 | | - return true; |
311 | | -} |
| 268 | +led_rgb pixels[strip_length] = {0}; |
312 | 269 |
|
313 | 270 | def_prim(show_pixels, NoneToNoneU32) { |
314 | 271 | int rc = led_strip_update_rgb(strip, pixels, strip_length); |
@@ -366,7 +323,6 @@ void install_primitives() { |
366 | 323 | install_primitive(chip_digital_write); |
367 | 324 | install_primitive(chip_digital_read); |
368 | 325 | install_primitive(print_int); |
369 | | - install_primitive(led_fun); |
370 | 326 | install_primitive(set_pixel_color); |
371 | 327 | install_primitive_reverse(set_pixel_color); |
372 | 328 | install_primitive(show_pixels); |
|
0 commit comments