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

當前位置:首頁 > 單片機 > 單片機
[導讀] 51內核的最基礎的中斷源請求有外部中斷、定時器中斷和串口中斷,這也是學習和開發(fā)者最長用的。當然還有其他的中斷源,比如ADC、SPI、PWM等。以外部中斷0為例,在編程中常使用的方式為:void INT0()interrupt 0 usin

 51內核的最基礎的中斷源請求有外部中斷、定時器中斷和串口中斷,這也是學習和開發(fā)者最長用的。當然還有其他的中斷源,比如ADC、SPI、PWM等。以外部中斷0為例,在編程中常使用的方式為:

void INT0()interrupt 0 using 1

{

……

}

在這里特別做上筆記:其中前面的void INT0() 只是代表一個普通沒有形參的函數而已,函數名寫成什么都是可以的,這個到不重要。那么后面的就一個一個詞的扣把:(2-1-i-c-中國-電子網,防抓取)

其中 interrupt n 組成一組,n用來指明中斷號,在函數后使用了interrupt關鍵字后,就會自動的生成中斷向量,51內核中斷號如下圖,這是我今天查的正在使用的MCU:


例如:

12

interrupt 1 指明是定時器中斷0;

interrupt 2 指明是外部中斷1;

interrupt 3 指明是定時器中斷1

。。。

對于51內核的MCU,不同廠家及不同型號的內部資源會有所不同,上圖是我正在開發(fā)的一款中穎SH88F516單片機,由上圖可見內部資源還算可以,能夠滿足一般的產品。后面的using n 指的是使用第n組寄存器。這個之前我在使用的過程中往往忽略了這個,也沒有出現(xiàn)什么問題。但是今天注意到這個問題,查完資料后用上發(fā)現(xiàn)效果還不如不用,很有肯能是沒有把這個知識用好的原因把。對比之后給我的感覺是在使用C語言寫程序時,能不用就不用吧。查資料解釋說假如在中斷函數中使用了using n,中斷不再保存R0-R7的值,這也就意味著假如一個高優(yōu)先級的中斷及一個低優(yōu)先級的中斷同時使用了using n,而這個n恰恰相等,那就等著哭把,因為這個BUG還真不是那么好找出來的(今天我就遇到了這個問題)。21ic整理

其次就是中斷優(yōu)先級的問題了,如圖上面的中斷表,在右側第二欄標的很清楚,除了復位之外,就數外部中斷0優(yōu)先級最高了,依次往下排列,那么問題來了,今天剛好就碰到了需要串口0的優(yōu)先級比定時器0的優(yōu)先級高。沒辦法,只好接著啃數據手冊,還好這寄存器不多,一會就查到了下表和相關的描述:


所以按照描述修改下優(yōu)先級就可以達到目的了。

總結:用到回過頭來用到51的中斷,發(fā)現(xiàn)有些東西在之前學習的時候并沒有太在意,導致現(xiàn)在在開發(fā)產品上使用的時候不清楚用途。因為工作跟學習性質是不一樣的,作為開發(fā)者的角度來說,質量往往是第一要求。同時會接觸到很多新鮮的事物和技術,但是話又說回來了,最基本的知識還是需要打牢。

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