- 打卡等级:以坛为家I
- 打卡总天数:375
- 最近打卡:2025-04-26 15:51:33
已绑定手机
高级会员
- 积分
- 822
|
本帖最后由 小坤 于 2024-1-28 21:10 编辑
跟个风,也用STC8H8K64U 驱动WS2812彩灯。底层驱动借用的是论坛前辈的。应用主要实现流水拖尾效果。
//LED灯流水灯拖尾程序
void Mode_2_Color()
{
u16 n;
u32 const LED_TAB[6]={0XFFFF00, 0X232300, 0X151500, 0X070700, 0X000000,0X000000};
memset(&Mode0, 0, sizeof(Mode0));
memset(&Mode1, 0, sizeof(Mode2));
if( Mode2.flag == 0)
{
for(n=0; n<WS_NUM-4; n++)
WsDat[n] = WsDat[n+1]; //整体移位
if(Mode2.count>WS_NUM-3)
Mode2.count = 0;
WsDat[n] = LED_TAB[Mode2.count%6]; //更新最新数据
Mode2.count ++;
for(n=0;n<WS_NUM;n++) //数据更新
{
if(n>=30)
{
DisP_Color(0x008000); //最后3个灯颜色不变
}
else
DisP_Color(WsDat[n]); //显示
}
Mode2.flag = 2;
/*
UART1_TxByte(WsDat[29]>>24);
UART1_TxByte(WsDat[29]>>16);
UART1_TxByte(WsDat[29]>>8);
UART1_TxByte(WsDat[29]>>0);
for(n=0;n<FIFO.Write;n++) //测试
{
UART1_TxByte(FIFO.buff[n]);
}
*/
}
else if( Mode2.flag == 2)
{
Mode2.Time++;
if(Mode2.Time>=5000)
{
reset();
Mode2.Time = 0;
Mode2.flag = 0;
}
}
}
|
1
喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
-
+1
给力啊!
|