找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 598|回復: 5
打印 上一主題 下一主題
收起左側(cè)

stc8h1k08單片機,ws2812b和0.96oled做的時鐘有問

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:593938 發(fā)表于 2025-3-7 14:30 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
用單片機做了個時鐘,OLED顯示時間日期,周邊一圈60個ws2812b燈珠同步顯示時分秒正常,但是想讓屏幕顯示時間,ws2812顯示流水燈就出問題了,我目前用的定時器定時一秒讀取時間顯示,但是這樣的話流水燈就被打斷了,不用定時器的話流水燈顯示的時候時鐘不能走秒,想問下有沒有更好的解決辦法

IMG_20250306_225850.jpg (513.16 KB, 下載次數(shù): 0)

IMG_20250306_225850.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:301191 發(fā)表于 2025-3-9 13:49 | 只看該作者
頂一下
回復

使用道具 舉報

板凳
ID:1145127 發(fā)表于 2025-3-9 21:02 | 只看該作者
用FreeRTOS吧,多線程跑這兩個任務
回復

使用道具 舉報

地板
ID:36322 發(fā)表于 2025-3-9 22:25 | 只看該作者
你的程序里讀取時間并在OLED上顯示和ws2812顯示流水燈時肯定使用了大量的延時,這些延時是打斷其他程序的根本原因。要想實現(xiàn)不同功能的流暢切換,要更換程序框架。比如使用狀態(tài)機的機理,將各個功能進行時間切片,不用死等的延時,這樣才可以。
回復

使用道具 舉報

5#
ID:69038 發(fā)表于 2025-3-9 23:05 | 只看該作者
流程問題。
2812在寫入數(shù)據(jù)不容打斷!
你的2812也是顯示時鐘的嗎?
那你可以定時讀RTC,對比秒數(shù)據(jù),秒不同才更新2812和OLED,
更新2812時,把所有中斷關(guān)閉就可以了。
2812和OLED都有鎖存的,沒必要時時更新數(shù)據(jù),只有在需要時再更新。
如果你的2812不是顯示秒,而是不停在在轉(zhuǎn),理論上可能要開硬件驅(qū)動,比如SPI+DMA,
這樣你2812發(fā)送數(shù)據(jù)交給DMA去處理,MCU只要給DMA喂新數(shù)據(jù)就可以了。
===以上僅供參考,沒有相關(guān)的實驗支持===
回復

使用道具 舉報

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

給你點贊,借樓給樓主說一聲如果有興趣的話可以看看我發(fā)的帖子,試試我的方案
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表