找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

近段時(shí)間迷戀WS2812驅(qū)動,請老師幫忙看一下這單片機(jī)程序

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

正文摘要:

這是STC官網(wǎng)stc32gDMA+spi+中斷檢測驅(qū)動ws2812的程序,想請老師指導(dǎo)修改成RGB為一組的追逐流水燈程序,試了幾次沒成。燈條為60燈的 在此感謝! 以下是程: #define      &nb ...

回復(fù)

ID:891876 發(fā)表于 2024-11-25 14:34
zhuls 發(fā)表于 2024-11-24 23:11
#define        SPI_NUM        (LED_NUM*12)        //這個(gè)12從那來?不明白
可能要改為:
# ...

謝謝您指導(dǎo),正在學(xué)習(xí)中
ID:961114 發(fā)表于 2024-11-25 09:19
我也迷戀,冠方論壇點(diǎn)燈大師太多了, 一起交流哈
ID:69038 發(fā)表于 2024-11-24 23:11
#define        SPI_NUM        (LED_NUM*12)        //這個(gè)12從那來?不明白
可能要改為:
#define        SPI_NUM        (LED_NUM*3)        //LED燈對應(yīng)SPI字節(jié)數(shù)
試試看這個(gè):

void run_one_init()//單色遞增
{
u8 i,j;
u8 color_val=0;

for (i=0;i<60;i++)
  {
    led_RGB[ i][1]=color_val;//60珠全單色

   color_val+=10 ;             //色值遞增,無所謂色值多少、遞增多少,只要不超255就OK,但色值超一定值后,人眼并不敏感了。。

  }

}
void run_one_shift()//單色色值轉(zhuǎn)移

{
u8 i,temp_val;
u8 color_val=0;
temp_val= led_RGB[0][1]; //暫存第一珠的色值

for (i=0;i<59;i++)
  {
    led_RGB[ i][1]=led_RGB[i+1][1];//后珠色值移向前珠

   }
led_RGB[59][1]=temp_val; //最后一珠的色值由第一珠暫存獲取

}


在main中:


.
.
.
run_one_init();
while(1)
{
run_one_shift();
ws2812_send_all(led_RGB...)... //發(fā)送整串色值
delay_ms()...  //按需插入延時(shí)

}



手上沒有相應(yīng)的燈帶,你參考測試一下。

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

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

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