1
這是從ws2812 documentation截取的示例:ws2812b模塊的緩衝區是如何工作的?
ws2812.init()
local i, buffer = 0, ws2812.newBuffer(300, 4); buffer:fill(0, 0, 0, 0); tmr.create():alarm(50, 1, function()
i = i + 1
buffer:fade(2)
buffer:set(i % buffer:size() + 1, 0, 0, 0, 255)
ws2812.write(buffer)
end)
首先我試圖轉化爲更多的東西可讀此,並且自我使用RGB和不RGBW的LED,我也刪除w成分:
local numberOfLeds = 300
local bytesPerLed = 3 -- (R, G and B)
ws2812.init()
local i
local buffer = 0
ws2812.newBuffer(numberOfLeds, bytesPerLed)
buffer:fill(255, 255, 255)
tmr.create():alarm(50, 1, function() -- repeat every 50 milliseconds
i = i + 1
buffer:fade(2)
buffer:set(i % buffer:size() + 1, 255, 255, 255)
ws2812.write(buffer)
end)
儘管如此,這對我來說並沒有任何意義。爲什麼buffer
有填充方法?我的意思是我們不是簡單地將它設置爲0? buffer = 0
我是否將此翻譯不正確?
原始代碼,所述local i, buffer = 0, ws2812.newBuffer(...); ...
我明白了,是的,這樣做更有意義。謝謝。 – Forivin