1、中斷
中斷控制器:中斷發(fā)生時(shí)有一個(gè)硬件裝置將信號(hào)輸入單片機(jī),該硬件部件叫中斷控制器,它負(fù)責(zé)把引起中斷的信號(hào)編號(hào),并按照事先約定的優(yōu)先級(jí)排隊(duì),并發(fā)信號(hào)給單片機(jī)的cpu。
中斷的編號(hào)叫中斷號(hào),對(duì)應(yīng)處理程序叫中斷服務(wù)程序,服務(wù)程序的地址叫中斷向量。中斷向量按照中斷編號(hào)排列成表,叫中斷向量表。
cpu檢測(cè)到中斷控制器的信號(hào)后,獲得當(dāng)前中斷發(fā)生信號(hào)的編號(hào),由中斷向量表找到中斷向量,轉(zhuǎn)而去執(zhí)行這個(gè)編號(hào)對(duì)應(yīng)的中斷處理程序。
中斷向量表見(jiàn)文章末。
2、復(fù)位
冷復(fù)位:上電復(fù)位; 熱復(fù)位:外部引腳或看門(mén)狗復(fù)位
3、通用I/O及其中斷:
端口P1 和P2 有中斷功能。每個(gè)針對(duì)P1 和P2 I/O 線路的中斷可被單獨(dú)啟用并被配置成在一個(gè)輸入信號(hào)的上升或者下降邊沿上提供一個(gè)中斷。所有P1 I/O 線路提供一個(gè)單一中斷矢量,并且所有P2 I/O 線路提供一個(gè)不同的,單中斷矢量。
I/O寄存器
PxDIR 方向:0輸入 1輸出
PxOUT
PxIN
PxREN
0:上拉/下拉電阻器被禁用 1:上拉/下拉電阻器被啟用
每個(gè)PxREN 寄存器中的每個(gè)位啟用或者禁用相應(yīng)I/O 引腳的上拉/下拉電阻器。 PxOUT寄存器中的相應(yīng)位選擇上拉或下拉引腳。
PxSEL&PxSEL2 功能選擇,默認(rèn)是I/O功能,可以根據(jù)手冊(cè)配置選擇其他功能
I/O中斷寄存器
端口P1 和P2 中的每個(gè)引腳都有中斷功能,此功能由PxIFG, PxIE,和PxIES 寄存器配置。所有P1 引腳提供一個(gè)單一中斷矢量,而所有P2 引腳提供一個(gè)不同的單一中斷矢量。在中斷程序中,可測(cè)試PxIFG 寄存器來(lái)確定一個(gè)P1或P2 中斷的源。
P1IFG&P2IFG :中斷標(biāo)志位,需軟件置位,也可軟件置位產(chǎn)生軟件控制的中斷。
(注: 當(dāng)改變PxOUT 或PxDIR 時(shí)的PxIFG 標(biāo)志寫(xiě)入P1OUT, P1DIR, P2OUT,或P2DIR
可導(dǎo)致設(shè)置相應(yīng)的P1IFG 或者P2IFG 標(biāo)志。)
P1IES&P2IES :中斷邊沿選擇 0上升沿;1下降沿。
(注: 寫(xiě)入PxIESx到P1IES,或者P2IES 的寫(xiě)入可導(dǎo)致相應(yīng)中斷標(biāo)志的設(shè)置。)
P1IE&P2IE : 中斷使能
所以根據(jù)分析可知,在設(shè)置完引腳功能寄存器后務(wù)必將中斷標(biāo)志位清零,然后再開(kāi)中斷。
默認(rèn)狀態(tài)
P1DIR為0(輸入);P1OUT為1(高電平);P1RNE為0(禁用)。
例程
按鍵上拉設(shè)置;
P1OUT |= BIT0; //選擇上下拉,1上拉;0下拉
P1OUT與P1REN配合使用
P1_3中斷程序
#include
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR = BIT0;
P1OUT = BIT3;
P1REN |= BIT3;
P1IE |= BIT3; //(1)中斷使能
P1IES |= BIT3; //(2)下降沿觸發(fā)
P1IFG &= ~BIT3; //(3)清零標(biāo)志位
__enable_interrupt (); //(4)開(kāi)總中斷
while(1);
}
#pragma vector=PORT1_VECTOR //固定格式
__interrupt void Port_1(void)
{
P1OUT ^= 0x01;
P1IFG &= ~0x08; //每次軟件復(fù)位
}
中斷向量表
表中第一列是中斷事件來(lái)源的名稱;第二列是對(duì)應(yīng)的中斷標(biāo)志位;第三列表示中斷的性質(zhì),其中 non-maskable 是無(wú)法關(guān)掉的中斷,即不受 GIE 控制的中斷, maskable 是可以被 GIE 關(guān)掉的中斷;第四列是中斷向量在存儲(chǔ)器中的位置;最后一列就是***中斷優(yōu)先級(jí)***。
中斷向量表中大多數(shù)中斷屬于“grouped interrupt”,即多個(gè)中斷源共用一個(gè)中斷向量入口。例如 P1.0-P1.7 中斷都使用 P1 中斷這一個(gè)入口。要識(shí)別中斷具體來(lái)自哪一個(gè) I/O 口,需要查看P1IFG 寄存器, P1IFG 共 8 位,分別對(duì)應(yīng) P1.0-P1.7,當(dāng)某個(gè)引腳出現(xiàn)中斷事件時(shí)對(duì)應(yīng)的P1IFG.x 就會(huì)被置位,在退出中斷之前一定不要忘記手動(dòng)將 P1IFG.x 復(fù)位。另外 P1IE 是 P1 口的中斷使能寄存器,也有 8 位,可以分別控制每個(gè) I/O 口的中斷使能
如何寫(xiě)一個(gè)中斷函數(shù)總結(jié)
要寫(xiě)一個(gè)帶有中斷的程序,需要做下面幾件事情:
配置外設(shè)中和中斷有關(guān)的寄存器,例如 I/O 口中斷是上升沿觸發(fā)還是下降沿觸發(fā), 定時(shí)器中斷的計(jì)數(shù)方式和定時(shí)值等等。
依照中斷服務(wù)函數(shù)的模板寫(xiě)中斷服務(wù)函數(shù),添加中斷后要干什么的代碼。
使能外設(shè)的中斷,使能全局中斷(GIE)
一旦中斷發(fā)生, CPU 停下主函數(shù)中的任務(wù),并標(biāo)記位置,進(jìn)入中斷服務(wù)函數(shù),執(zhí)行完中斷服務(wù)函數(shù)之后回到主函數(shù)標(biāo)記位置處繼續(xù)運(yùn)行。
中斷服務(wù)函數(shù)
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P1OUT ^= 0x01; // P1.0 = toggle
P1IFG &= ~0x08; // Clear P1.3 IFG
}
#pragma vector=PORT1_VECTOR
#Pragma 是編譯器指令,是告訴編譯器將函數(shù)與中斷向量連接起來(lái)。 “vector=”后面是中斷向量地址的宏定義,例如 P1 口中斷就是 PORT1_VECTOR,定時(shí)器中斷就是TIMER0_A1_VECTOR。
不同外設(shè)的中斷向量名在哪里找呢?打開(kāi) CCS 的安裝文件夾,例如C:ticcsv7ccs_basemsp430include,在這個(gè)文件夾中搜索芯片的具體型號(hào),如msp430g2553,可以找到一個(gè)名為 msp430g2553.h 的頭文件。這個(gè)頭文件中包含了所有寄存器位的宏定義,包括中斷向量的宏定義。 在 msp430g2553.h 中找到“Interrupt Vectors”這個(gè)部分(如下圖),其中包含了所有中斷向量的名稱。 例如 P1 端口的中斷向量名就是PORT1_VECTOR。
__interrupt void Port_1(void)
__interrupt 關(guān)鍵字表明這是一個(gè)中斷服務(wù)函數(shù),CPU 見(jiàn)到這個(gè)關(guān)鍵字以后就會(huì)去做中斷之前的準(zhǔn)備工作。 Port_1 是用戶自己取的函數(shù)名稱,這個(gè)名稱可以任意命名。
中斷服務(wù)函數(shù)的具體內(nèi)容
中斷服務(wù)函數(shù)的內(nèi)容依據(jù)中斷的不同種類有所差別。退出中斷前一定不要忘記將中斷標(biāo)志位復(fù)位。
上一篇:MSP430F5529 火箭板 --->點(diǎn)亮一盞LED實(shí)驗(yàn)
下一篇:MSP430 Flash編程程序
推薦閱讀
史海拾趣
面對(duì)日益激烈的市場(chǎng)競(jìng)爭(zhēng)和技術(shù)變革,Equator始終保持著持續(xù)創(chuàng)新的精神。公司不斷投入研發(fā)資源,探索新的技術(shù)方向和應(yīng)用場(chǎng)景。例如,在人工智能和機(jī)器學(xué)習(xí)領(lǐng)域,Equator正在積極開(kāi)展相關(guān)研究和實(shí)踐工作,探索將這些先進(jìn)技術(shù)應(yīng)用于視頻處理領(lǐng)域的可能性。通過(guò)持續(xù)創(chuàng)新和努力,Equator正致力于引領(lǐng)電子行業(yè)未來(lái)的發(fā)展方向。
為了進(jìn)一步擴(kuò)大市場(chǎng)份額,Bergquist Company開(kāi)始積極拓展全球市場(chǎng)。公司先后在英國(guó)、德國(guó)、韓國(guó)等地設(shè)立了辦事機(jī)構(gòu),并在30多個(gè)國(guó)家設(shè)立了銷(xiāo)售代表處。這些舉措不僅使公司的產(chǎn)品和服務(wù)覆蓋了更廣泛的地區(qū),還為公司帶來(lái)了更多的商業(yè)機(jī)會(huì)。同時(shí),Bergquist Company還積極尋求與其他企業(yè)的合作,通過(guò)技術(shù)交流和資源共享,不斷提升自身的競(jìng)爭(zhēng)力。
進(jìn)入90年代后期,Corsair再次調(diào)整其產(chǎn)品策略,由生產(chǎn)標(biāo)準(zhǔn)內(nèi)存轉(zhuǎn)變?yōu)樯a(chǎn)高于規(guī)格的內(nèi)存,即超頻內(nèi)存。這一決策迎合了當(dāng)時(shí)市場(chǎng)對(duì)高性能內(nèi)存的需求,Corsair的超頻內(nèi)存迅速在市場(chǎng)上獲得了認(rèn)可。其產(chǎn)品的超級(jí)性能專為極大需求的應(yīng)用軟件而設(shè),也一直被應(yīng)用關(guān)鍵的服務(wù)器及極高性能的工作站(包括游戲系統(tǒng))上。
e2v Technologies自成立以來(lái),一直致力于技術(shù)創(chuàng)新和科學(xué)合作。公司曾與多個(gè)國(guó)際知名科研機(jī)構(gòu)合作,參與了諸如哈勃天文望遠(yuǎn)鏡、Envisat氣象環(huán)境遙感衛(wèi)星等著名科學(xué)項(xiàng)目。這些項(xiàng)目對(duì)圖像傳感器的精度和穩(wěn)定性提出了極高的要求,e2v憑借其卓越的技術(shù)實(shí)力,成功為這些項(xiàng)目提供了高質(zhì)量的圖像傳感器,進(jìn)一步鞏固了其在圖像傳感器領(lǐng)域的領(lǐng)先地位。
在醫(yī)療領(lǐng)域,e2v也積極發(fā)揮其作用。公司針對(duì)放射治療系統(tǒng)提供了價(jià)格合理、易于運(yùn)輸和安裝的國(guó)內(nèi)制造設(shè)備,支持中國(guó)各地醫(yī)院和診所的放射治療工作。這些設(shè)備不僅提高了放射治療的效果和效率,也為患者帶來(lái)了更好的治療體驗(yàn)。
隨著防靜電產(chǎn)品市場(chǎng)的不斷擴(kuò)大,DESCO公司開(kāi)始著手進(jìn)行市場(chǎng)拓展和品牌塑造。公司通過(guò)參加國(guó)際展會(huì)、舉辦技術(shù)研討會(huì)等方式,積極向全球客戶展示其防靜電產(chǎn)品的技術(shù)優(yōu)勢(shì)和應(yīng)用前景。同時(shí),DESCO還加大了品牌宣傳力度,提高了品牌知名度和美譽(yù)度。這些舉措為公司在全球范圍內(nèi)贏得了大量忠實(shí)客戶,市場(chǎng)份額持續(xù)增長(zhǎng)。
單管共射放大電路的低頻響應(yīng) 若單管共射放大電路中沒(méi)有耦合電容和旁路電容,其中頻段的幅頻特性可以水平延伸到零頻率,或者說(shuō)fL=0,因而不必進(jìn)行低頻響應(yīng)特性的分析。考慮到在分立器件電路中或在集成電路引出腳與外部電路之間常用阻容耦合方式,有 ...… 查看全部問(wèn)答∨ |
點(diǎn)擊論壇鏈接時(shí)遇到的小麻煩,還請(qǐng)遇到過(guò)的給寫(xiě)提示! 在點(diǎn)擊的好多鏈接時(shí)總是出現(xiàn)未能查找到,是我的瀏覽器設(shè)置問(wèn)題還是什么地方? 反正挺麻煩的,每次只能在論壇的主頁(yè)上點(diǎn)擊各個(gè)帖子,那位兄臺(tái)知道的就告訴兄弟一下吧… 查看全部問(wèn)答∨ |
《Keil Software –Cx51 編譯器用戶手冊(cè) 中文完整版》(403頁(yè)) 《Keil Software –Cx51 編譯器用戶手冊(cè) 中文完整版》(403頁(yè))… 查看全部問(wèn)答∨ |
|
恩智浦Cortex LPC1343開(kāi)發(fā)板免費(fèi)申請(qǐng) 整機(jī)為交流供電,數(shù)字電源和電子負(fù)載都有獨(dú)立的液晶顯示部分,顯示各自的狀態(tài)信息。 數(shù)字電源開(kāi)機(jī)初始狀態(tài)為0V,可在0-20V范圍內(nèi)以0.1V步進(jìn)電壓調(diào)整(同時(shí)具有0.01v的微調(diào)按紐)。帶有輸出電壓,輸出電流,輸出功率顯示。 & ...… 查看全部問(wèn)答∨ |
|
幫朋友購(gòu)買(mǎi)一個(gè)ST的RLINK燒錄器, 請(qǐng)有貨的朋友聯(lián)系一下,給出報(bào)價(jià)和付款方式及保修期等.或者給推薦一下購(gòu)買(mǎi)地點(diǎn),現(xiàn)在深圳.Email ; zhqlchy0904@sohu.com… 查看全部問(wèn)答∨ |
開(kāi)門(mén)見(jiàn)山,小弟疑問(wèn)如下: 1.如何確定一款單片機(jī)I/O口,是否有3態(tài),如何設(shè)置高阻態(tài)。 2.若沒(méi)有3態(tài),則如何設(shè)置在上點(diǎn)之后,初始狀態(tài)為滅。 請(qǐng)教各位,如有解答,不勝感激… 查看全部問(wèn)答∨ |
我考 8個(gè)串口 兄弟們聽(tīng)說(shuō)過(guò)沒(méi)有,這就是我最近在用的 cantus128 ARM,我現(xiàn)在想用它的網(wǎng)口轉(zhuǎn)串口 在串口轉(zhuǎn)網(wǎng)口,玩一下啊,反正串口多多嗎,內(nèi)部FIFO又大。哈哈哈… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開(kāi)發(fā)環(huán)境為開(kāi)發(fā)者提供支持
- iTOP-i.MX6開(kāi)發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開(kāi)發(fā)板Qt for Android搭建開(kāi)發(fā)環(huán)境
- 迅為i.MX8M mini開(kāi)發(fā)板Windots QT系統(tǒng)開(kāi)發(fā)環(huán)境搭建
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開(kāi)發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開(kāi)發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)設(shè)置開(kāi)機(jī)自啟動(dòng)
- 迅為IMX6Q開(kāi)發(fā)板 Buildroot文件系統(tǒng)mqtt測(cè)試
- BOE(京東方)發(fā)布未來(lái)三年股東回報(bào)規(guī)劃 一攬子方案提升長(zhǎng)期投資價(jià)值
- 車(chē)載以太網(wǎng)-SOME/IP簡(jiǎn)介
- 圓柱電池市場(chǎng)“洗牌”醞釀,場(chǎng)景爭(zhēng)奪戰(zhàn)打響
- 4月15日德州儀器攜手庫(kù)卡發(fā)布新一代工業(yè)機(jī)器人控制器,定義安全與效率新標(biāo)桿
- 大眾汽車(chē)集團(tuán)在中國(guó)推出全新AI驅(qū)動(dòng)ADAS系統(tǒng) 面向下一代智能電動(dòng)汽車(chē)
- 納微電半導(dǎo)體推出最新SiCPAK?電源模塊
- “鈉新”、“驍遙雙核”……寧德時(shí)代開(kāi)啟多核時(shí)代
- 地平線發(fā)布HSD「全家桶」,城市NOA戰(zhàn)局迎來(lái)「新變量」
- 地平線輔助駕駛系統(tǒng)發(fā)布:軟硬一體
- TrendForce:預(yù)計(jì)中國(guó)市場(chǎng)2025年人形機(jī)器人本體產(chǎn)值將超過(guò)45億人民幣
- Microchip 直播|利用motorBench®開(kāi)發(fā)套件高效開(kāi)發(fā)電機(jī)磁場(chǎng)定向控制方案
- 中國(guó)版BeagleBone Black超低價(jià)團(tuán)購(gòu)!11月18日火爆開(kāi)團(tuán)
- 【開(kāi)工大吉,搶樓有禮】聊一聊你感興趣的技術(shù)和板子
- 下載有禮:一起初探5G,贏氮化鎵(GaN)充電器、柔性墨水屏等精美禮品
- [直播預(yù)報(bào)名] TI 最新藍(lán)牙技術(shù)培訓(xùn),2017 震撼首發(fā)!
- 有獎(jiǎng)國(guó)產(chǎn)芯直播:先楫800MHz RISC-V MCU高能秀,豈止控4只伺服電機(jī),干貨多多
- 試用Vishay新型“IHLP磁芯損耗計(jì)算器”,搶樓贏好禮
- 暢想十二月,設(shè)計(jì)我自己的EEWORLD!
- 英特爾 SoC FPGA 開(kāi)發(fā)者論壇 (ISDF) 預(yù)約報(bào)名享好禮!
- 一天賺148萬(wàn)元!科大訊飛2018年凈利潤(rùn)達(dá)5.42億 但53%為政府補(bǔ)助
- 研發(fā)“大桃機(jī)器人” 平谷將建農(nóng)科創(chuàng)示范區(qū)
- 搞定“熊孩子” 智能教育機(jī)器人還須再提智
- 上海璞泰來(lái)新能源科技股份有限公司2018年年度股東大會(huì)圓滿召開(kāi)
- 國(guó)際合作譜寫(xiě)深空探測(cè)未來(lái)
- 建站更便宜 頻譜更適合 中國(guó)5G領(lǐng)先美國(guó)
- 當(dāng)你老了,頭發(fā)白了……智能機(jī)器人“不再讓你孤單”!
- 視比特機(jī)器人完成數(shù)千萬(wàn)元戰(zhàn)略融資
- 三大運(yùn)營(yíng)商5G預(yù)約用戶數(shù)超900萬(wàn) 商用落地進(jìn)入倒計(jì)時(shí)
- 世界級(jí)工程見(jiàn)證高原電網(wǎng)70年
- 怎么解壓都有這個(gè)錯(cuò)誤tar: Exiting with failure status due to previous errors
- DBG8051單片機(jī)仿真軟件
- TL5708開(kāi)發(fā)板程序編寫(xiě)、編譯、燒錄與運(yùn)行教程
- AM335X的SPI怎么擴(kuò)展片選?
- NE555 超簡(jiǎn)單 小夜燈
- 請(qǐng)教高手們SPI燒錄器問(wèn)題怎么設(shè)計(jì)才能速度最快呢
- TI OMAP-L138(定點(diǎn)/浮點(diǎn)DSP C674x+ARM9)拓展IO信號(hào)、底板B2B連接器
- 問(wèn)題反饋
- 小白求問(wèn):開(kāi)關(guān)電源不起振怎么辦?
- 分享一下實(shí)戰(zhàn)演練的代價(jià)