找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

stc8h1k08單片機(jī),ws2812b和0.96oled做的時(shí)鐘有問

查看數(shù): 633 | 評(píng)論數(shù): 5 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2025-3-7 14:30

正文摘要:

用單片機(jī)做了個(gè)時(shí)鐘,OLED顯示時(shí)間日期,周邊一圈60個(gè)ws2812b燈珠同步顯示時(shí)分秒正常,但是想讓屏幕顯示時(shí)間,ws2812顯示流水燈就出問題了,我目前用的定時(shí)器定時(shí)一秒讀取時(shí)間顯示,但是這樣的話流水燈就被打斷了, ...

回復(fù)

ID:446156 發(fā)表于 2025-3-10 10:08
zxcscm 發(fā)表于 2025-3-9 22:25
你的程序里讀取時(shí)間并在OLED上顯示和ws2812顯示流水燈時(shí)肯定使用了大量的延時(shí),這些延時(shí)是打斷其他程序的根 ...

給你點(diǎn)贊,借樓給樓主說一聲如果有興趣的話可以看看我發(fā)的帖子,試試我的方案
ID:69038 發(fā)表于 2025-3-9 23:05
流程問題。
2812在寫入數(shù)據(jù)不容打斷!
你的2812也是顯示時(shí)鐘的嗎?
那你可以定時(shí)讀RTC,對(duì)比秒數(shù)據(jù),秒不同才更新2812和OLED,
更新2812時(shí),把所有中斷關(guān)閉就可以了。
2812和OLED都有鎖存的,沒必要時(shí)時(shí)更新數(shù)據(jù),只有在需要時(shí)再更新。
如果你的2812不是顯示秒,而是不停在在轉(zhuǎn),理論上可能要開硬件驅(qū)動(dòng),比如SPI+DMA,
這樣你2812發(fā)送數(shù)據(jù)交給DMA去處理,MCU只要給DMA喂新數(shù)據(jù)就可以了。
===以上僅供參考,沒有相關(guān)的實(shí)驗(yàn)支持===
ID:36322 發(fā)表于 2025-3-9 22:25
你的程序里讀取時(shí)間并在OLED上顯示和ws2812顯示流水燈時(shí)肯定使用了大量的延時(shí),這些延時(shí)是打斷其他程序的根本原因。要想實(shí)現(xiàn)不同功能的流暢切換,要更換程序框架。比如使用狀態(tài)機(jī)的機(jī)理,將各個(gè)功能進(jìn)行時(shí)間切片,不用死等的延時(shí),這樣才可以。
ID:1145127 發(fā)表于 2025-3-9 21:02
用FreeRTOS吧,多線程跑這兩個(gè)任務(wù)
ID:301191 發(fā)表于 2025-3-9 13:49
頂一下

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

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

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