找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1925|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

如何解決單片機+595數(shù)碼管顯示程序其他功能干擾顯示的穩(wěn)定性?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:254747 發(fā)表于 2021-11-28 23:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我的數(shù)碼管是595的驅(qū)動程序     
現(xiàn)在我的程序功能越來越多,在有的函數(shù)中執(zhí)行時間比較長,例如我調(diào)節(jié)占空比的時候,我把實時值發(fā)送到了數(shù)碼管,但是數(shù)碼管無法顯示,原因找到了,就是函數(shù)執(zhí)行時間過長,導(dǎo)致長時間沒有掃描數(shù)碼管所致,請問該如何處理
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2021-11-28 23:30 | 只看該作者
1)數(shù)碼管的動態(tài)掃描,必須在定時器里完成
2)必須每20毫秒完成一次數(shù)碼管所有位的點亮。即:如果是4位數(shù)碼管,必須每5毫秒點亮一個位,8位數(shù)碼管則必須每2.5毫秒點亮一個位。
回復(fù)

使用道具 舉報

板凳
ID:752974 發(fā)表于 2021-11-29 08:40 | 只看該作者
595驅(qū)動的數(shù)碼管應(yīng)該是靜態(tài)顯示,顯示的數(shù)據(jù)沒有更新時不需要刷新顯示器。你這種現(xiàn)象可能是有某個中斷服務(wù)程序執(zhí)行時間太長造成的,解決方法一是修改中斷服務(wù)程序,做到運行時間最短,記住,不要在中斷里處理數(shù)據(jù)。二是執(zhí)行顯示程序時關(guān)中斷。
回復(fù)

使用道具 舉報

地板
ID:254747 發(fā)表于 2021-11-29 09:36 | 只看該作者
munuc_w 發(fā)表于 2021-11-29 08:40
595驅(qū)動的數(shù)碼管應(yīng)該是靜態(tài)顯示,顯示的數(shù)據(jù)沒有更新時不需要刷新顯示器。你這種現(xiàn)象可能是有某個中斷服務(wù) ...

你回答的確實如此  就是我有一個調(diào)節(jié)占空比的函數(shù) 執(zhí)行時間比較長 但是我這個時間沒有辦法縮短  縮短了頻率或者占空比就沒有辦法調(diào)節(jié)了  請問還有什么好辦法嗎  PWM占空比我用的是中斷變量 中斷里面只對這個變量++其它什么都不做  
回復(fù)

使用道具 舉報

5#
ID:254747 發(fā)表于 2021-11-29 09:38 | 只看該作者
188610329 發(fā)表于 2021-11-28 23:30
1)數(shù)碼管的動態(tài)掃描,必須在定時器里完成
2)必須每20毫秒完成一次數(shù)碼管所有位的點亮。即:如果是4位數(shù) ...

非常感謝你的指導(dǎo)   我重新開了一個定時器 給數(shù)碼管用了  可以顯示     結(jié)果按鍵又沒法用了    哈哈哈哈
回復(fù)

使用道具 舉報

6#
ID:161164 發(fā)表于 2021-11-29 12:18 | 只看該作者
不將就123 發(fā)表于 2021-11-29 09:36
你回答的確實如此  就是我有一個調(diào)節(jié)占空比的函數(shù) 執(zhí)行時間比較長 但是我這個時間沒有辦法縮短  縮短了頻 ...

要問解決方法
先要把代碼貼上來
云討論沒用
回復(fù)

使用道具 舉報

7#
ID:578842 發(fā)表于 2021-11-29 12:42 | 只看該作者
不將就123 發(fā)表于 2021-11-29 09:38
非常感謝你的指導(dǎo)   我重新開了一個定時器 給數(shù)碼管用了  可以顯示     結(jié)果按鍵又沒法用了    哈哈哈哈

你在定時器中斷里面做標(biāo)志位,形成軟件定時開關(guān),就可以兼顧不同的時間需求。全部放定時計數(shù)器里面,肯定亂套
回復(fù)

使用道具 舉報

8#
ID:57657 發(fā)表于 2021-11-29 12:46 | 只看該作者
不將就123 發(fā)表于 2021-11-29 09:38
非常感謝你的指導(dǎo)   我重新開了一個定時器 給數(shù)碼管用了  可以顯示     結(jié)果按鍵又沒法用了    哈哈哈哈

無論是什么程序,至少開一個定時器中斷(用于控制數(shù)碼管顯示、按鍵消抖什么的),軟件延時盡量少用,595可以做到段碼和位碼并行發(fā)送,所以不需要消影。
回復(fù)

使用道具 舉報

9#
ID:298123 發(fā)表于 2021-11-29 13:24 | 只看該作者
定時中斷掃描,前提是你別的邏輯判斷能被這個中斷打斷就行
回復(fù)

使用道具 舉報

10#
ID:752974 發(fā)表于 2021-11-29 13:38 | 只看該作者
不將就123 發(fā)表于 2021-11-29 09:36
你回答的確實如此  就是我有一個調(diào)節(jié)占空比的函數(shù) 執(zhí)行時間比較長 但是我這個時間沒有辦法縮短  縮短了頻 ...

用的是什么單片機?現(xiàn)在的單片機內(nèi)部定時器都有PWM功能,軟件只需要根據(jù)要求設(shè)置占空比的數(shù)據(jù)就可以了,不用占用大量的CPU時間。
回復(fù)

使用道具 舉報

11#
ID:624769 發(fā)表于 2021-11-29 14:25 | 只看該作者
不將就123 發(fā)表于 2021-11-29 09:38
非常感謝你的指導(dǎo)   我重新開了一個定時器 給數(shù)碼管用了  可以顯示     結(jié)果按鍵又沒法用了    哈哈哈哈

調(diào)節(jié)占空比不要用現(xiàn)場計算, 提前計算完做成表, 現(xiàn)場用查表, 占用時間就不長了.

另外定時器里面執(zhí)行顯示,也可以同時執(zhí)行按鍵檢測, 正常人的正常按鍵速度大約 150ms,就算是故意找茬用的極限手速也需要10ms完成一次按鍵,所以,如果定時器刷新LED間隔5ms也不會錯過按鍵。

唯一的就是,別再定時器里延時。
回復(fù)

使用道具 舉報

12#
ID:213173 發(fā)表于 2021-11-29 19:28 | 只看該作者
使用595驅(qū)動數(shù)碼管基本不會給單片機帶來什么額外負擔(dān)。樓主沒有上代碼,大家只能泛泛而談,都是隔宿瘙癢,沒有什么實際意義?梢钥隙ǖ恼f是樓主程序結(jié)構(gòu)有嚴重缺陷。眾人盲人摸象般指教只會使樓主如墜云霧,于事無補。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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