中斷程序和查詢方式的區(qū)別
查詢方式在程序運(yùn)行時(shí)必須判斷溢出狀態(tài)位,溢出后須軟件清零。
本文引用地址:http://m.butianyuan.cn/article/201612/324156.htm查詢方式:發(fā)送數(shù)據(jù)——先發(fā)后查;
接收數(shù)據(jù)——先查后收。
中斷方式:發(fā)送數(shù)據(jù)——發(fā)送、等待中斷、中斷中發(fā)送;
接收數(shù)據(jù)——等待中斷、在中斷中接收
中斷方式,是事件觸發(fā)的,換言之只要有事件產(chǎn)生都會(huì)進(jìn)入中斷,并且取得最優(yōu)運(yùn)行,因此響應(yīng)更快,及時(shí)。
查詢方式,就是在主函數(shù)里面不停循環(huán),查詢端口狀態(tài),明顯其弊端在于響應(yīng)速度,在處理事件多,處理流程復(fù)雜,函數(shù)嵌套執(zhí)行的情況下,由于處理不過(guò)來(lái)容易丟失事件。
舉個(gè)例子,在電話用戶接入系統(tǒng)里面,一個(gè)單片機(jī)管理1個(gè)電話端口的摘掛機(jī),執(zhí)行周期要求8ms,用查詢的方式足夠了,但是當(dāng)電話增加到16個(gè),用查詢方式,效果就差了,曾出現(xiàn)過(guò)電話響起的時(shí)(12個(gè)電話齊呼),拿起話筒,電話還在振鈴,明顯處理不過(guò)來(lái)。
這個(gè)時(shí)候,有兩個(gè)辦法,一個(gè)采用中斷方式,另一個(gè)采用更高效的CPU,明顯前者只需要修改軟件,后者需要增加硬件成本,還延長(zhǎng)開(kāi)發(fā)時(shí)間。
評(píng)論