找回密码
 立即注册
楼主: VECENT_LIN

AI8051U, 灯光控制板, PWM-DMA 直接驱动 WS2812

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-22 17:17:43

0

主题

5

回帖

60

积分

注册会员

积分
60
发表于 2024-10-17 16:23:14 | 显示全部楼层
VECEN*** 发表于 2024-9-27 19:32
WS2812 烟花灯
晚上的效果还是杠杠嘀!
Ai8051U, 灯光控制板,

楼主,能借鉴你这个烟花的算法吗?想学学关于2812的图形显示
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-10-18 17:32:31 来自手机 | 显示全部楼层
罗程峰820 发表于 2024-10-17 16:23
楼主,能借鉴你这个烟花的算法吗?想学学关于2812的图形显示

这个要跟硬件电路的接法,然后再确定每个灯的位置,再控制就可以了{:5_272:}
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-05-01 00:16:05
已绑定手机

24

主题

345

回帖

1629

积分

金牌会员

积分
1629
发表于 2024-10-28 09:12:06 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:88
  • 最近打卡:2025-04-30 10:16:57
已绑定手机

4

主题

44

回帖

507

积分

高级会员

积分
507
发表于 2024-12-14 21:54:23 | 显示全部楼层

点灯大师出山了

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-12-15 17:42:35 | 显示全部楼层
罗程*** 发表于 2024-10-17 16:23
楼主,能借鉴你这个烟花的算法吗?想学学关于2812的图形显示

void M5(unsigned char color,unsigned char sd,unsigned int time)      
{u16 j,x;
        u32 x1,y;
      
         for(j=0;j<WS_NUM;j++)
         {
                 WsDat[j]=0x000000;
         }
         for(j=0;j<24;j++)
         {
                temp[j]=seku1[j];
         }
         for(x=0;x<260;x=x+sd)
        {
                if(x<202)
                {
                for(j=0;j<210;j++)
         {
                 WsDat[j]=0x000000;
         }
}
               
                if(x<202)
                {
                        WsDat[x]=caihongseku[color][7];
                        WsDat[x+1]=caihongseku[color][6];
                        WsDat[x+2]=caihongseku[color][5];
                        WsDat[x+3]=caihongseku[color][4];
                        WsDat[x+4]=caihongseku[color][3];
                        WsDat[x+5]=caihongseku[color][2];
                        WsDat[x+6]=caihongseku[color][1];
                        WsDat[x+7]=caihongseku[color][0];
                }
          if(x>202&&x<205)
                {
                        sd=1;
                        for(y=0;y<6;y++)
         {
                        for(x1=0;x1<120;x1++)
                        {
                          WsDat[180+x1+y*120]=LBX[x1];
                        }
                                }
                        }
                if(x>209)
                { for(x1=0;x1<24;x1++)
                        {
                switch(x1)
                {                       
                  case(0):if((x+x1*30+7)<=899)        {WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(1):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(2):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(3):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(4):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(5):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(6):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(7):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(8):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(9):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(10):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(11):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(12):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(13):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(14):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(15):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(16):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(17):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(18):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(19):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(20):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(21):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
                  case(22):if((x+x1*30+7)<=899)        {        WsDat[x+x1*30]=caihongseku[color][7];WsDat[x+x1*30+1]=caihongseku[color][6];WsDat[x+x1*30+2]=caihongseku[color][5];WsDat[x+x1*30+3]=caihongseku[color][4];WsDat[x+x1*30+4]=caihongseku[color][3];WsDat[x+x1*30+5]=caihongseku[color][2];WsDat[x+x1*30+6]=caihongseku[color][1];WsDat[x+x1*30+7]=caihongseku[color][0];}break;
                  case(23):if((x+x1*30-29+7)<=899)        {        WsDat[x+x1*30-29]=caihongseku[color][7];WsDat[x+x1*30-29+1]=caihongseku[color][6];WsDat[x+x1*30-29+2]=caihongseku[color][5];WsDat[x+x1*30-29+3]=caihongseku[color][4];WsDat[x+x1*30-29+4]=caihongseku[color][3];WsDat[x+x1*30-29+5]=caihongseku[color][2];WsDat[x+x1*30-29+6]=caihongseku[color][1];WsDat[x+x1*30-29+7]=caihongseku[color][0];}break;
               
        }
                if (x>239)
                {WsDat[x+x1*30-60]=caihongseku[color][7];WsDat[x+x1*30+1-60]=caihongseku[color][6];WsDat[x+x1*30+2-60]=caihongseku[color][5];WsDat[x+x1*30+3-60]=caihongseku[color][4];WsDat[x+x1*30+4-60]=caihongseku[color][3];WsDat[x+x1*30+5-60]=caihongseku[color][2];WsDat[x+x1*30+6-60]=caihongseku[color][1];WsDat[x+x1*30+7-60]=caihongseku[color][0];
                }
                }
                }

      DIS();//显示子程序
                       
               
               
               
}
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-02-28 11:44:43
已绑定手机

4

主题

21

回帖

100

积分

注册会员

积分
100
发表于 2025-2-18 10:58:32 | 显示全部楼层
YYDS
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2025-2-21 08:59:17 | 显示全部楼层
专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:52 , Processed in 0.297978 second(s), 91 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表