找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請教一個單片機(jī)WS2812流水燈程序的問題

查看數(shù): 983 | 評論數(shù): 3 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2024-11-11 19:31

正文摘要:

這是一段控制WS2812從中間向兩邊亮的函數(shù),想請教怎樣改成從兩邊向中間亮呢?改了幾次沒都成功

回復(fù)

ID:891876 發(fā)表于 2024-11-12 13:33
飛云居士 發(fā)表于 2024-11-12 09:33
調(diào)整循環(huán)的起始和結(jié)束條件,以及數(shù)組索引的計算方式。修改后的代碼:

```c

感謝指導(dǎo)!
ID:404160 發(fā)表于 2024-11-12 09:33
調(diào)整循環(huán)的起始和結(jié)束條件,以及數(shù)組索引的計算方式。修改后的代碼:

```c
void WaterLampToCol3(unsigned long _uColor, unsigned char _uTime)
{
    unsigned char i;
    for (i = 0; i < nWs; i++)
    {
        WsDat[i] = _uColor;
        WsDat[nWs - 1 - i] = _uColor;
        WS_L_SetAll();
        delay_ms(_uTime);
    }
    reset();
}
```

1. 循環(huán)從 `i = 0` 開始,而不是 `i = nWs/2`。
2. 將 `WsDat[nWs/2 - (i - nWs/2)]` 改為 `WsDat[i]` 和 `WsDat[nWs - 1 - i]`,這樣就會先設(shè)置數(shù)組的兩端,然后逐漸向中間設(shè)置。


ID:136485 發(fā)表于 2024-11-12 08:44
你既然知道從中間往兩邊流,那為什么不明白從兩邊到中間流呢,好好想一想,就比如你的燈24路,那就是一個1開始加到12為停止,一個24減到12停止,兩個同時開始流,不就實現(xiàn)了

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表