![]() |
發布時間: 2019-1-5 14:30
正文摘要:上次程序更新后,STC15W204s控制ws2812B七彩流水燈,發現一個問題,就是keil C編譯時,燈數調整為37時,一直報錯說內存超出,希望高手能指點迷津,現在將36燈程序分享給大家: 單片機源碼: #include<stc15.h> #in ... |
mark一下,后面玩的時候再來看看 |
非常感謝,正好需要,我目前控制30燈珠 |
nanyexin 發表于 2021-6-16 18:54 算一下理論時間,數據手冊上發送一個bit需要1.25us左右,一個RGB像素點24bit。共需要時間 1024*1.25*24 = 30720us,即光驅動這1024顆燈需要30ms以上,這個時間已經很長了。發送過程中還不能被其他任務打斷。然后你的ram資源要足夠 (1024*3個byte,即3kb以上,想實現復雜花樣效果就要考慮算法、硬件設計,全亮這電源起碼都60安的電流了 ![]() |
bababibu 發表于 2020-10-20 17:25 如果要驅動1024個像素點呢?就時候1024個燈,市場上的可以做到,怎么修改……。 |
bababibu 發表于 2020-10-20 17:25 牛人!!!!!!!!!!!!!!!! |
yuren1984 發表于 2019-1-10 05:23 感謝分享,學習啦。這樣修改的確可以驅動60個燈珠 |
將idata改為xdata,可以128燈,我用STC15W4K32S4仿真可以成功 ![]() #define numLEDs 128 //燈的個數 unsigned char xdata buf_R[numLEDs] = {0};//顏色緩存 unsigned char xdata buf_G[numLEDs] = {0}; unsigned char xdata buf_B[numLEDs] = {0}; |
我都用臺系類PIC的,16M 2T 一樣的可以做到完美時序 |
樓主,如果第一個燈亮后保持到第二個亮后也保持,第三個亮后也保持,這個怎寫?太感謝了 |
試程序要以用 |
感謝樓主 |
晶振頻率太低,要33M,我的可以用 |
好東西 |
老兄,你的頭文件是對的,我的改了頭文件就報錯 |
陳小手43970 發表于 2019-2-20 12:51 你的是不是也只亮白色 |
你好,我發現這個程序只能亮ff的顏色,其余0-254的顏色無法顯示哎 |
June1210 發表于 2019-1-7 15:12 可以啊,加我QQ 176492137 |
摯愛梅兒 發表于 2019-1-8 10:05 這樣編譯我試了,程序能編譯能通過,下載單片機里一個燈都不亮,百度了一下說要加外部RAM |
已經解unsigned char idata buf_R[numLEDs] = {0};//顏色緩存 unsigned char buf_G[numLEDs] = {0};//顏色緩unsigned char buf_B[numLEDs] = {0};//顏色緩存,這樣修改最多可以點78顆燈,有興趣的朋友可以試一試 |
keil設置target options------memory Model 選擇large:variables in XDATA再編譯一遍試試 |
樓主 可以加個好友么 我也學STC15W204S |