欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開(kāi)始

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

在單片機(jī)主程序通訊中的delay(),怎樣避開(kāi)中斷的干擾

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:387856 發(fā)表于 2019-9-11 09:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
20黑幣
單片機(jī)控制一串幻彩LED燈串,這幻彩LED是又驅(qū)動(dòng)IC的,單片機(jī)和驅(qū)動(dòng)IC要通訊。通訊協(xié)議是:send_1(){dat=0;delay_us(4);dat=1;delay_us(12);}這就是發(fā)送數(shù)據(jù)1,send_0(){dat=0;delay_us(4);dat=1;delay_us(6);}這就是發(fā)送數(shù)據(jù)0,send_end(){dat=0;delay_us(4);dat=1;delay_us(20);}這就是發(fā)送數(shù)據(jù)結(jié)束碼,發(fā)了結(jié)束碼之后,驅(qū)動(dòng)IC就把LED點(diǎn)亮。單片機(jī)每點(diǎn)亮一個(gè)LED要發(fā)32+1=33個(gè)碼,前8個(gè)碼是LED驅(qū)動(dòng)IC的地址,再接著8個(gè)是紅色led占空比值,再接著8個(gè)是藍(lán)色色led占空比值,再接著8個(gè)是綠色led占空比值,再加一個(gè)結(jié)束碼。現(xiàn)在問(wèn)題就來(lái)了:我在主程序里發(fā)送碼值驅(qū)動(dòng)LED燈時(shí),完全OK,但是只要一開(kāi)定時(shí)器中斷,就不行了,因?yàn)槎〞r(shí)器中斷后,使delay_us();延時(shí)的值變了,導(dǎo)致通訊數(shù)據(jù)錯(cuò)誤。 所以看看哪位高人指點(diǎn)一下,萬(wàn)分感謝

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來(lái)自 2#
ID:517466 發(fā)表于 2019-9-12 22:57 | 只看該作者
中央處理器同一時(shí)刻只能處理一個(gè)事務(wù),所以在有中斷事務(wù)的場(chǎng)合,外部處理是一定會(huì)被打斷的,如果在外部處理中有和時(shí)序有關(guān)的通訊,是肯定會(huì)出問(wèn)題的。你可以采用雙單片機(jī),單片機(jī)之間使用串口通訊方式收發(fā)數(shù)據(jù),由于串口之間有自己的通訊機(jī)制,不會(huì)被其他中斷處理打斷。或者在單片機(jī)與驅(qū)動(dòng)IC之間加入數(shù)據(jù)緩沖電路進(jìn)行隔離,類似于DMA通訊方式。單片機(jī)與數(shù)據(jù)緩沖電路之間,嚴(yán)格使用脈沖的上升或者下降沿來(lái)鎖存數(shù)據(jù),這樣也不會(huì)受到中斷的影響。
你現(xiàn)在的電路不改,想完全通過(guò)軟件來(lái)調(diào)整是有難度的。
建議你還是通過(guò)硬件電路實(shí)現(xiàn)和驅(qū)動(dòng)IC之間的通訊時(shí)序。

評(píng)分

參與人數(shù) 2黑幣 +46 收起 理由
liuhailan5757 + 6 感謝參與
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:282850 發(fā)表于 2019-9-11 11:00 | 只看該作者
在通訊開(kāi)始的時(shí)候,關(guān)閉定時(shí)器中斷或總中斷,通訊結(jié)束時(shí)再打開(kāi)中斷即可。

評(píng)分

參與人數(shù) 1黑幣 +9 收起 理由
liuhailan5757 + 9 現(xiàn)在只有這個(gè)方法可行了

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:387856 發(fā)表于 2019-9-11 13:55 | 只看該作者
首先謝謝您的回答 ,按照您的方法的話,那定時(shí)器的定時(shí)又不準(zhǔn)了,因?yàn)槲乙枚〞r(shí)器解碼紅外遙控器,開(kāi)控制這個(gè)LED的
回復(fù)

使用道具 舉報(bào)

5#
ID:405193 發(fā)表于 2019-9-11 19:13 | 只看該作者
通訊協(xié)議里的延時(shí)用定時(shí)器來(lái)做呢?
回復(fù)

使用道具 舉報(bào)

6#
ID:123289 發(fā)表于 2019-9-11 21:50 | 只看該作者
很簡(jiǎn)單,延時(shí)不要用DELAY做!!!
回復(fù)

使用道具 舉報(bào)

7#
ID:138097 發(fā)表于 2019-9-12 08:21 | 只看該作者
liuhailan5757 發(fā)表于 2019-9-11 13:55
首先謝謝您的回答 ,按照您的方法的話,那定時(shí)器的定時(shí)又不準(zhǔn)了,因?yàn)槲乙枚〞r(shí)器解碼紅外遙控器,開(kāi)控制 ...

難道只有一個(gè)定時(shí)器嗎,可以用其他的定時(shí)器啊
回復(fù)

使用道具 舉報(bào)

8#
ID:158375 發(fā)表于 2019-9-12 14:57 | 只看該作者
看起來(lái),樓主還是不理解什么是單片機(jī)啊。
回復(fù)

使用道具 舉報(bào)

9#
ID:387856 發(fā)表于 2019-9-12 17:18 | 只看該作者
笨笨兔 發(fā)表于 2019-9-12 14:57
看起來(lái),樓主還是不理解什么是單片機(jī)啊。

請(qǐng)高手指教。單片機(jī)規(guī)格:晶振最高4M 2T,兩個(gè)定時(shí)器,不要奢望定時(shí)器產(chǎn)生4uS的延時(shí)
回復(fù)

使用道具 舉報(bào)

10#
ID:490330 發(fā)表于 2019-9-12 17:46 | 只看該作者
delay之前關(guān)中斷,結(jié)束后開(kāi)中斷即可

評(píng)分

參與人數(shù) 1黑幣 +9 收起 理由
liuhailan5757 + 9 只能用這個(gè)方法了

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

11#
ID:387856 發(fā)表于 2019-9-14 09:59 | 只看該作者
溫酒斬華騰 發(fā)表于 2019-9-12 17:46
delay之前關(guān)中斷,結(jié)束后開(kāi)中斷即可

現(xiàn)在只能用這個(gè)方法了,有外部中斷(按鍵或是紅外遙控)就停止發(fā)碼,開(kāi)定時(shí)器。
回復(fù)

使用道具 舉報(bào)

12#
ID:387856 發(fā)表于 2019-9-14 10:00 | 只看該作者
f556 發(fā)表于 2019-9-11 11:00
在通訊開(kāi)始的時(shí)候,關(guān)閉定時(shí)器中斷或總中斷,通訊結(jié)束時(shí)再打開(kāi)中斷即可。

有外部中斷(按鍵或是紅外遙控)就停止發(fā)碼,開(kāi)啟定時(shí)器
回復(fù)

使用道具 舉報(bào)

13#
ID:387856 發(fā)表于 2019-9-14 10:05 | 只看該作者
suncat0504 發(fā)表于 2019-9-12 22:57
中央處理器同一時(shí)刻只能處理一個(gè)事務(wù),所以在有中斷事務(wù)的場(chǎng)合,外部處理是一定會(huì)被打斷的,如果在外部處理 ...

我這個(gè)LED控制器的單片機(jī)才2毛錢(qián)一個(gè),沒(méi)有串口,更不可能用雙單片機(jī)控制。現(xiàn)在的唯一的辦法就是,只要有外部中斷(中斷和遙控)就停止發(fā)碼,開(kāi)定時(shí)器,因?yàn)樘幚硪粋(gè)按鍵和遙控器的時(shí)間也就幾十個(gè)毫秒,反應(yīng)到LED上看不出來(lái)。謝謝您的參與
回復(fù)

使用道具 舉報(bào)

14#
ID:611393 發(fā)表于 2019-9-14 14:15 | 只看該作者
延時(shí)的時(shí)候一般不用delay()的,delay()函數(shù)會(huì)一直占用CPU,單片機(jī)執(zhí)行delay的時(shí)候就不能干其他的工作了。這樣是很浪費(fèi)資源的。一般延時(shí)可以用中斷來(lái)做,解放CPU去執(zhí)行其他工作,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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