日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]中斷函數(shù)注意如下:(1)中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯。(2)中斷函數(shù)沒有返回值,如果企圖定義一個返回值將得不到正確的結(jié)果,建議在定義中斷函數(shù)時將其定義為void類

中斷函數(shù)注意如下:
(1)中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯。
(2)中斷函數(shù)沒有返回值,如果企圖定義一個返回值將得不到正確的結(jié)果,建議在定義中斷函數(shù)時將其定義為void類型,以明確說明沒有返回值。
(3)在任何情況下都不能直接調(diào)用中斷函數(shù),否則會產(chǎn)生編譯錯誤。因為中斷函數(shù)的返回是由8051單片機的RETI指令完成的,RETI指令影響8051單片機的硬件中斷系統(tǒng)。如果在沒有實際中斷情況下直接調(diào)用中斷函數(shù),RETI指令的操作結(jié)果會產(chǎn)生一個致命的錯誤。
(4)如果在中斷函數(shù)中調(diào)用了其它函數(shù),則被調(diào)用函數(shù)所使用的寄存器必須與中斷函數(shù)相同。否則會產(chǎn)生不正確的結(jié)果。
(5)C51編譯器對中斷函數(shù)編譯時會自動在程序開始和結(jié)束處加上相應(yīng)的內(nèi)容,具體如下:在程序開始處對ACC、B、DPH、DPL和PSW入棧,結(jié)束時出棧。中斷函數(shù)未加using n修飾符的,開始時還要將R0~R1入棧,結(jié)束時出棧。如中斷函數(shù)加using n修飾符,則在開始將PSW入棧后還要修改PSW中的工作寄存器組選擇位。
(6)C51編譯器從絕對地址8m+3處產(chǎn)生一個中斷向量,其中m為中斷號,也即interrupt后面的數(shù)字。該向量包含一個到中斷函數(shù)入口地址的絕對跳轉(zhuǎn)。

void IsrTimer0(void) interrupt [n] n為中斷號,編譯器將n*8+3=中斷(入口)向量地址

也就是說:

中斷號 中斷名 中斷向量地址

0 INT 0(外部中斷0) 0003H

1 TIMER/COUNTER 0(定時/計數(shù)器0) 000BH

2 INT 1(外部中斷1) 0013H

3 TIMER/COUNTER 1(定時/計數(shù)器1) 001BH

4 SERIAL PORT(串口中斷) 0023H

5 TIMER/COUNTER 2(定時/計數(shù)器2) 002BH

外注: 上電復(fù)位 0000H


(7)中斷函數(shù)最好寫在文件的尾部,并且禁止使用extern存儲類型說明。防止其它程序調(diào)用。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在ARM架構(gòu)中,中斷處理是一個關(guān)鍵機制,它允許CPU在執(zhí)行主程序時能夠響應(yīng)外部或內(nèi)部的事件。對于ARM MCU(微控制器單元)而言,中斷處理程序入口通常分為兩類:ARM保留的標(biāo)準(zhǔn)中斷處理程序入口和外設(shè)中斷處理程序入口。

關(guān)鍵字: ARM 中斷處理

中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。中斷系統(tǒng)是計算機的重要組成部分。實時控制、故障自動處理、計算機與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。

關(guān)鍵字: CPU 中斷處理 自動處理

STM32Cube HAL出來六七年了,還是有很多初學(xué)者沒有適應(yīng),今天就分享一個讀者問到的關(guān)于中斷處理的問題。

關(guān)鍵字: 中斷處理 回調(diào)函數(shù)

測試環(huán)境:keil c51 +STC89C52說明:1.keil的不定參數(shù)只有15個字節(jié)也就是說sizeof(...) 加起來總共不能超過15字節(jié),否則會出錯2.當(dāng)不定參數(shù)中有常數(shù)時,你也會得不到你想要的結(jié)果,字符串除外...

關(guān)鍵字: sprintf keil51

在介紹2410的中斷處理之前,我們不得不先看看先把ARM的異常向量表(Exception Vectors),下面對異常向量表(Exception Vectors),做一個簡單的介紹: ARM的異常向量表一般存放在0x...

關(guān)鍵字: s3c2410 中斷處理

幾個基本概念:?1.ARM?cortex_m3?內(nèi)核支持?256?個中斷(16?個內(nèi)核+240?外部)和可編程?256?級中斷優(yōu)先級的設(shè)置,與其相關(guān)的中斷控制和中斷優(yōu)先級控制寄存器(NVIC、SYST

關(guān)鍵字: 中斷處理 中斷控制器

ARM有七種模式,我們這里只討論SVC、IRQ和FIQ模式。 我們可以假設(shè)ARM核心有兩根中斷引腳(實際上是看不見的),一根叫 irq pin, 一根叫fiq pin. 在ARM的cpsr中,有一個I位和一個F位,分別用...

關(guān)鍵字: ARM 中斷處理 中斷控制器

這個 2440test里面的中斷寫的向量有些隱蔽,兜了很多個圈,也難怪這么難理解,下面就對這個東西抽絲剝繭,看清楚這究竟是一個怎么樣的過程。中斷向量bHandlerIRQ;handler for IRQ interrup...

關(guān)鍵字: 中斷處理 2440中

中斷:中斷是一種使CPU中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作,這些引起中斷的事件稱為中斷源,它們可能是來自外設(shè)的輸入輸出請求,也可能是計算機的一些異常事故或其它內(nèi)部原因。中斷處理程序:當(dāng)中斷發(fā)生時,

關(guān)鍵字: 中斷 中斷處理

STM32的USB雙緩存接收代碼其實已經(jīng)可以在ST提供的USB示例代碼中找到,只要稍加修改,就可以得到將近1MB的數(shù)據(jù)接收性能。雖然Datasheet中說明USB發(fā)送也同樣可以使用雙緩存,但并沒有示例代碼,由于為了測試性...

關(guān)鍵字: STM32 USB 中斷處理 雙緩存
關(guān)閉