音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

大家來(lái)討論一下“中斷”

作者:fushaobing 欄目:單片機(jī)
大家來(lái)討論一下“中斷”
在“我的C程序,總少不了goto”一文中,有人提到:


cnchip 發(fā)表于 2006-6-12 17:47 侃單片機(jī) ←返回版面    

這只是編程規(guī)范的問(wèn)題,風(fēng)格的問(wèn)題,易讀性的問(wèn)題

不是用了就會(huì)出問(wèn)題!
會(huì)出啥問(wèn)題?

就象N多人說(shuō)的進(jìn)了中斷就要盡快退出一樣,俺到現(xiàn)在都不太明白為啥非要這個(gè)不成文的規(guī)矩!可俺就特喜歡用中斷,只要系統(tǒng)允許,俺都在中斷中處理完了再出來(lái)!處理好了啥問(wèn)題也沒(méi)有!

只要合理設(shè)置中斷優(yōu)先級(jí),該中斷的統(tǒng)統(tǒng)中斷,該嵌套時(shí)它自己嵌套了,調(diào)試好了MCU統(tǒng)統(tǒng)自己處理了,那個(gè)爽啊^_^


那么我想大家討論一下,到底是用中斷好還是不用中斷好?

2樓: >>參與討論
567
適合用中斷的時(shí)候用中斷好,適合不用中斷的時(shí)候不用中斷好。
進(jìn)入中斷要盡快退出,是為了防止別的中斷得不到執(zhí)行機(jī)會(huì)而丟失。

并非所有事情都可以用設(shè)置中斷優(yōu)先級(jí)來(lái)解決。

3樓: >>參與討論
kingsr
^_^
俺一般在中斷里面做個(gè)標(biāo)記就跑出來(lái)了.

4樓: >>參與討論
yewuyi
看情況處理……
如果開(kāi)中斷反而增加了程序處理的復(fù)雜性,肯定不如用查詢方式更直觀了當(dāng)了……

5樓: >>參與討論
AIRWILL
樓上說(shuō)的有理
    rockos 從 os 層面闡述了中斷例程的一個(gè)處理原則

    事實(shí)上, 就象上面有提到的,進(jìn)了中斷就要盡快退出一樣,這個(gè)不成文的規(guī)矩我也在自覺(jué)不自覺(jué)地遵循著. 即使在沒(méi)有 OS 的系統(tǒng)中, 也是需要做些考慮的.

    從我個(gè)人的考慮, 系統(tǒng)編程的一個(gè)很需要注重的方面, 就是整體的實(shí)時(shí)性.
對(duì)于只有一個(gè)輸入的系統(tǒng),當(dāng)然可以無(wú)所謂啦.
    但是,我們的系統(tǒng)往往都是有很多的輸入, 并且和較多數(shù)量的輸入要求系統(tǒng)的響應(yīng)有足夠的實(shí)時(shí)性. 產(chǎn)用中斷服務(wù)直接完成功能, 可能會(huì)有一個(gè)高優(yōu)先的中斷執(zhí)行太長(zhǎng)的時(shí)間,而阻斷系統(tǒng)對(duì)其它輸入的實(shí)時(shí)響應(yīng). 特別如按鍵消抖這樣的系統(tǒng),中斷中如果再進(jìn)行較長(zhǎng)時(shí)間的延時(shí), 將對(duì)系統(tǒng)的實(shí)時(shí)性造成的影響可能是致命性的.
   


6樓: >>參與討論
21ic2008
回復(fù)
    俺一般在中斷里面做個(gè)標(biāo)記就跑出來(lái)了
    某某某到此一游,呵呵!

7樓: >>參與討論
AIRWILL
所以,樓上所說(shuō)的就是一個(gè)基本原則
    通過(guò)設(shè)置標(biāo)志,由主程序來(lái)對(duì)實(shí)時(shí)性的優(yōu)先要求規(guī)則,對(duì)輸入信號(hào)做出優(yōu)先判斷,并處理掉那些本不該有的處理器指令方式的等待延時(shí).

8樓: >>參與討論
fushaobing
在"uCOS-II"一書(shū)中有這樣一段話:
雖然中斷服務(wù)的處理時(shí)間應(yīng)該盡可能短,但是對(duì)處理時(shí)間并沒(méi)有絕對(duì)的限制。不能說(shuō)中斷服務(wù)時(shí)間必須全部短于100us,500us或1ms。如果中斷服務(wù)是在任意給定的時(shí)間開(kāi)始,且中斷服務(wù)子程序代碼是應(yīng)用程序中最重要的代碼,則中斷服務(wù)需要多長(zhǎng)時(shí)間,就應(yīng)該給它多長(zhǎng)時(shí)間。然而在大多數(shù)情況下,中斷服務(wù)子程序應(yīng)識(shí)別中斷來(lái)源,從請(qǐng)求中斷的設(shè)備取得數(shù)據(jù)或狀態(tài),并通知真正做該事件處理的任務(wù)。

9樓: >>參與討論
fushaobing
回復(fù)
中斷,顧名思義,就是被打擾。對(duì)后臺(tái)程序而言,當(dāng)然不希望被打擾,即使被打擾,時(shí)間也不要太長(zhǎng)。否則對(duì)系統(tǒng)的運(yùn)行會(huì)造成什么不良后果就不得而知了。后臺(tái)程序又叫主程序,而中斷程序我們叫服務(wù)程序。中斷程序是為主程序服務(wù)的,通常的做法是,在中斷程序中設(shè)置標(biāo)志位或快速記下數(shù)據(jù),然后在主程序中進(jìn)行處理。如果你能用中斷的地方就用中斷,能在中斷中處理的就在中斷中處理,那么你可以想象一下你的主程序,在隨機(jī)的情況下被中斷的幾率有多高,而且被中斷的時(shí)間也不短,如果發(fā)生資源沖突等問(wèn)題,夠你忙的。


我的觀點(diǎn)是:
1,能不用中斷就不用中斷;
2,能不在中斷服務(wù)程序中處理就不在中斷服務(wù)程序中處理。

這樣一來(lái),程序的結(jié)構(gòu)得到了優(yōu)化,對(duì)這個(gè)系統(tǒng)你就可以做到心中有數(shù),而且使系統(tǒng)變的簡(jiǎn)單了。

10樓: >>參與討論
conwh
如果在中斷時(shí)間過(guò)長(zhǎng),也就是占用了大量的資源.作為工控來(lái)將
就是需要實(shí)時(shí)性,這樣你就違背了這個(gè)基本原則.如果你的任務(wù)簡(jiǎn)單,而且其他信號(hào)和進(jìn)程都在你的控制(計(jì)算)之內(nèi),那就無(wú)所謂了.

11樓: >>參與討論
eleven11
re
在"uCOS-II"一書(shū)中有這樣一段話:

雖然中斷服務(wù)的處理時(shí)間應(yīng)該盡可能短,但是對(duì)處理時(shí)間并沒(méi)有絕對(duì)的限制。不能說(shuō)中斷服務(wù)時(shí)間必須全部短于100us,500us或1ms。如果中斷服務(wù)是在任意給定的時(shí)間開(kāi)始,且中斷服務(wù)子程序代碼是應(yīng)用程序中最重要的代碼,則中斷服務(wù)需要多長(zhǎng)時(shí)間,就應(yīng)該給它多長(zhǎng)時(shí)間。然而在大多數(shù)情況下,中斷服務(wù)子程序應(yīng)識(shí)別中斷來(lái)源,從請(qǐng)求中斷的設(shè)備取得數(shù)據(jù)或狀態(tài),并通知真正做該事件處理的任務(wù)。

你根本沒(méi)有深刻理解這句話,要明白模塊和任務(wù)的區(qū)別

“中斷服務(wù)子程序應(yīng)識(shí)別中斷來(lái)源,從請(qǐng)求中斷的設(shè)備取得數(shù)據(jù)或狀態(tài),并通知真正做該事件處理的任務(wù)。”


12樓: >>參與討論
ocon
這問(wèn)題簡(jiǎn)單:有時(shí)候用中斷好,有時(shí)候不用中斷好。
 
13樓: >>參與討論
fushaobing
to eleven11:
謝謝你的回復(fù)。我是這樣理解“模塊”和“任務(wù)”的:
1,任務(wù)是由模塊組成的;
2,對(duì)于前后臺(tái)系統(tǒng),只有一個(gè)任務(wù);
3,對(duì)于多任務(wù)系統(tǒng),相當(dāng)于有多個(gè)后臺(tái)。

這樣理解對(duì)嗎?

14樓: >>參與討論
rockos
不對(duì)
沒(méi)有一條是對(duì)的



15樓: >>參與討論
kingsr
^_^
靠,為什么看不到我的簽名,怪哉.怪哉.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教:40m有源晶振有兩個(gè)頻率????(附圖)
MSP430F149死機(jī)的問(wèn)題!
為什么關(guān)閉LCD電源,高電平會(huì)降到1V左右?請(qǐng)教
有沒(méi)有上海賣430 JTAG的?
JATE知多少?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)