调整循环的起始和结束条件,以及数组索引的计算方式。修改后的代码:
```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]`,这样就会先设置数组的两端,然后逐渐向中间设置。
|