我目前正在使用 Arduino Uno。我遇到了内存不足的问题,我设法修复了它们。然后这个项目的负责人让我知道还有另一条 150 个 LED 灯条,它们都是一种颜色。
这不是问题,但我知道在 FastLED 中设置 LED 颜色的唯一方法是提供一个颜色数组,其中每个索引代表一个 LED。
在这种情况下,这是 450 字节的数据,大约是 Arduino Unos ram 的 25%,完全专用于 3 字节的数据:一种颜色。
现在,这除了是可恶的资源浪费外,也是我根本无法承受的。
有人知道如何在不制作阵列的情况下将 150 个 LED 设置为相同的颜色吗?
到目前为止我尝试过的:
我尝试过浏览 FastLED 的源代码,发现它CFastLED::addLeds
创建了一个CLEDController
稍后CLEDController::show()
调用的函数,然后调用了“showPixels()”,这是一个被每个不同解抽象的虚拟函数条协议类的类型,并且总是需要一个 LED[] 数组。据我所知,在执行此操作之前,我必须深入研究每个不同的协议类,此时我不妨删除 FastLED 并从头开始编写我自己的版本。
在我的场景中,链的底部似乎是这样的: https ://github.com/FastLED/FastLED/blob/03d12093a92ee2b64fabb03412aa0c3e4f6384dd/platforms/arm/k20/octows2811_controller.h#L40
在 FastLED 中,似乎真的没有合适的方法将整条 LED 设置为相同的颜色。