熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-8-6 18:34
正文摘要:看見X寶 賣的ws2812燈帶覺得挺好玩,閑來無事買了一條1米60燈的。自己寫了個(gè)驅(qū)動(dòng) :功能 1 燈全亮(可調(diào)7色),2流水燈(可調(diào)7色),3 燈全亮閃爍(可調(diào)7色) 制作出來的實(shí)物圖如下: |
別的我沒試 ,我主要是看到按鍵掃描沒有去抖 沒有延時(shí),就對這個(gè)按鍵掃描函數(shù)比較感興趣,我就試了按鍵掃描這個(gè)函數(shù),發(fā)現(xiàn)是有問題的,根本就不工作! /******************按鍵掃描******************************/ /* 功能 : 設(shè)置S6按鍵長短按識別小于20MS短按 長于3S長按 */ void keyScan() { static unsigned char i; static unsigned int key_press_time = 0; // ……請記得標(biāo)為靜態(tài)變量 static unsigned int key_press_time2 = 0; // ……請記得標(biāo)為靜態(tài)變量 if(s6==0) { if(++key_press_time <=0 ) --key_press_time;//計(jì)量按鍵時(shí)間,并避免數(shù)據(jù)溢出 if(key_press_time==3000) { //在此寫下按鍵長按3s時(shí)要做的事情 LED2_REV(); Loop_Speed= Loop_Speed-15; } } else { if(10<=key_press_time && key_press_time < 3000) { //大于20ms小于3s,視為短按,在此寫下寫短按的處理代碼 LED1_REV(); i++; switch(i) //s6按鍵LED7色控制 { case 0 : {RR=0X00;GG=0X00;BB=0XFE; break;} case 1 : {RR=0X00;GG=0XFE;BB=0X00; break;} case 2 : {RR=0XFE;GG=0X00;BB=0X00; break;} case 3 : {RR=0XFE;GG=0XFE;BB=0X00; break;} case 4 : {RR=0X00;GG=0XFE;BB=0XFE; break;} case 5 : {RR=0XFE;GG=0X00;BB=0XFE; break;} case 6 : {RR=0XFE;GG=0XFE;BB=0XFE; break;} case 7 : {i=0; break;} } } key_press_time=0; } 下面這段話大家來討論看看 這完全行不通啊,24M的單片機(jī)跑起來 ++key_press_time; key_press_time==3000,需要3秒鐘?即使是6M的時(shí)鐘跑起來 加到3000也不要3秒鐘吧! if(++key_press_time <=0 ) --key_press_time;//計(jì)量按鍵時(shí)間,并避免數(shù)據(jù)溢出 if(key_press_time==3000) { //在此寫下按鍵長按3s時(shí)要做的事情 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
烈火 發(fā)表于 2025-3-4 21:05 30塊包郵的邏輯分析儀,你值得擁有 |
參考了一下,單色沒有實(shí)現(xiàn)。是什么原因? |
大家都說有問題?那我只好下載下來研究和驗(yàn)證一下了。 |
這個(gè)挺好的,我正想編輯這個(gè)程序驅(qū)動(dòng)自己的彩燈,感謝樓主提供,我可以參考一下 |
服了,就一個(gè)IO端口,要啥原理圖,要啥自行車? ![]() |
師傅,測試的時(shí)候沒有單色藍(lán)光,檢查下哪里出了問題? |
非常感謝,終于找到想要的了。 |
有原理圖么 |
謝謝樓主分享,難得的好資料。 |
一上電變?nèi)书W爍,mode初始化為0應(yīng)該是關(guān)閉的狀態(tài),燈不亮,通過按下按鍵才亮的吧 |
我看了下代碼,發(fā)現(xiàn)好多變量都沒初始化就開始累加計(jì)算了,真的無語,確定不會(huì)出錯(cuò)嗎 |
a399288395 發(fā)表于 2022-1-8 16:13 下載完整程序好好看看再說話。。。。。。就看了一段直接判斷程序不能用也是絕了。。。。。。。 |
gaochen15159 發(fā)表于 2021-11-10 08:48 這東西是串行控制,燈是成品,控制隨便啦個(gè)IO就行了 |
謝謝樓主分享,難得的好資料,感謝,經(jīng)過編譯,正常點(diǎn)亮 |
huping137 發(fā)表于 2021-11-4 09:27 時(shí)序在WS2812B.H里面 |
幾百個(gè)燈珠可以控制嗎? |
有沒有原理圖可以借鑒一下,我也想自己做一個(gè)玩一下 |
這個(gè)程序里是不是少了發(fā)送0和1的時(shí)序了 |
用STC哪個(gè)型號的單片機(jī)? |
有原理圖嗎大師 |
Powered by 單片機(jī)教程網(wǎng)