飞云居士 发表于 2024-11-12 09:33 感谢指导! |
|
调整循环的起始和结束条件,以及数组索引的计算方式。修改后的代码: ```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. 循环从 `i = 0` 开始,而不是 `i = nWs/2`。 2. 将 `WsDat[nWs/2 - (i - nWs/2)]` 改为 `WsDat[i]` 和 `WsDat[nWs - 1 - i]`,这样就会先设置数组的两端,然后逐渐向中间设置。 |
| 你既然知道从中间往两边流,那为什么不明白从两边到中间流呢,好好想一想,就比如你的灯24路,那就是一个1开始加到12为停止,一个24减到12停止,两个同时开始流,不就实现了 |