主函數(shù) 就是 寫作業(yè),中斷 就是 電話,中斷函數(shù) 就是 接電話后要做什么。

成都創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為石河子企業(yè)提供專業(yè)的網(wǎng)站設計制作、成都網(wǎng)站建設,石河子網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
通常所說的中斷函數(shù)一般指第三點,它是肯定不在主函數(shù)里面的。
只要是你觸發(fā)了中斷不管程序在主函數(shù)中運行到了哪都會直接跳入中斷函數(shù),完成中斷函數(shù)之后再返回發(fā)生中斷那個點繼續(xù)執(zhí)行主函數(shù)。
為了把主程序全部放入(定時)中斷中,必須把程序化分成一個個的模塊,即任務,每個任務完成一個特定的功能,例如掃描鍵盤并檢測按鍵。
單片機有個中斷入口地址,產(chǎn)生中斷后CPU自動從中斷向量取得入口地址,然后從這個地址執(zhí)行程序 。如果你用匯編寫代碼,你會發(fā)現(xiàn)main函數(shù)其實也是一個中斷函數(shù),是個復位中斷,和其它中斷不同處是main沒有返回。
C中實現(xiàn)中斷是用了一個函數(shù):geninterrupt(...)這個“...”是個16進制的數(shù)字,是中斷號,像鼠標中斷號就是0x33 還要用到類似匯編里寄存器模樣的變量:如_AX,_BX,_CX,_DX...不同的值功能不同。。
采取輪詢的方式解決,就是每10毫秒檢查一下是否有鍵盤請求,總的來說,這樣基本上可以解決問題,而且簡單易行,但每10毫秒都要檢查,系統(tǒng)消耗太大。采取中斷的方式:(1)用高級語言調(diào)用中斷來處理問題。
所以我們就用外部中斷1來實現(xiàn)記錄K4按鍵從按下到松手的抖動過程中經(jīng)歷了多少個下降沿,把下降沿的個數(shù)顯示在數(shù)碼管上。
中斷函數(shù)要中關鍵字Interrupt,中斷函數(shù)執(zhí)行時,系統(tǒng)會進行狀態(tài)的壓棧保存,就是進行當前運行狀態(tài)的保護,函數(shù)結(jié)束后恢復。
C語言中函數(shù)和函數(shù)體的區(qū)別為:傳遞參數(shù)不同、返回值不同、調(diào)用不同。傳遞參數(shù)不同 函數(shù):函數(shù)具有明確的入口傳遞參數(shù)。函數(shù)體:函數(shù)體沒有明確的入口傳遞參數(shù),內(nèi)部進行定義和說明。
區(qū)別是:break 用于循環(huán)和switch分支,跳出它所在的塊(分支 或 循環(huán)體),到它所在的塊的后面去執(zhí)行。例如:for(...){ break;/* L1 */ } /* L2 */ L1處不執(zhí)行,跳至L2處執(zhí)行。
這些都要你自己做,但既然用C語言了,這些操作又是比較通用的,所以編譯器就會自動給你做了。同時,編譯器會自動建立起中斷向量的聯(lián)系,讓中斷發(fā)生時能跳轉(zhuǎn)到你的中斷處理函數(shù)執(zhí)行。
分享文章:c語言中斷函數(shù)與主函數(shù) c語言中中斷函數(shù)是如何定義的
瀏覽地址:http://chinadenli.net/article41/dspochd.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、自適應網(wǎng)站、網(wǎng)站改版、定制網(wǎng)站、小程序開發(fā)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)