- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32中断控制全解
MAIN.C 程式碼 void __irq IRQHandler(void) { INTPND=INTPND|0x400; //清除中斷懸置位元 switch(IOPDATA 0xf0) // 閃爍LED,以表示進入中斷服務常式 { case 0x0: IOPDATA=0x10; break; case 0x10: IOPDATA=0x20; break; case 0x20: IOPDATA=0x40; break; case 0x40: IOPDATA=0x80; break; default : IOPDATA=0x0; break; } } MAIN.C 程式碼 unsigned Install_Handle(unsigned routine,unsigned *vector) { unsigned vec,oldvect; vec=((routine-(unsigned)vector-0x8)2); // vec=0xea000000|vec; oldvect=*vector; *vector=vec; return(oldvect); } ARM DEBUGGER 載入映像檔案進行除錯 ARM DEBUGGER 按F10單步執行程式或點工作列上的圖示 觀察計時器設定的方式 ARM DEBUGGER 設定 TMOD ( 計時器模式暫存器 ) 設定 TDATA0 ( 計時器0資料暫存器 ) 設定 INTMOD ( 中斷模式暫存器 ) 初始值 致能計時器0 初始值 計數 0x400000 後產生中斷 設定所有的中斷都 使用IRQ方式處理中斷 ARM DEBUGGER 設定 IOPMOD ( I/O埠模式暫存器 ) 設定 INTMSK ( 中斷遮罩暫存器 ) 進入while無窮迴圈,等待中斷產生 當中斷產生時,計數器0的INTPND (中斷懸置暫存器 ) 訊號就會設定為1 P0~P7 為輸出 啟動計數器0中斷的回應 無中斷 產生中斷 ARM DEBUGGER 設定 Breakpoint,程式中斷點,觀察中斷產生的情況 在想要在位置點滑鼠右鍵 或按F9 設定Breakpoint的位置會有紅色標號 點選執行後,程試會在Breakpoint停下 Go ARM DEBUGGER 清除計數器0的中斷懸置暫存器 執行完 INTPND = INTPND | 0x400 後,0x3ff4004記憶體中的值應該為 0但由於計數器速度太快,所以執行完此行,計數器也產生了下一個中斷,所以INTPND 一直保持在0 ARM DEBUGGER 此程式就每隔計數器0,計數0x400000次後就進入中斷副程式中,執行LED燈號的顯示。 HOME WORK 修改計數器0資料暫存器,改變LED閃爍速度 加入Switch功能,來控制不同的LED閃爍 第七章中斷控制器工作原理與程式設計 Ping-Liang Lai (賴秉樑) 中斷控制器工作原理 中斷向量表 位址 例外事件 例外事件模式 0x0000,0000 重置 管理模式 0x0000,0004 未定義指令 未定義模式 0x0000,0008 軟體中斷 管理模式 0x0000,000C 終止(預取指令) 終止模式 0x0000,0010 終止(數據) 終止模式 0x0000,0014 保留 保留 0x0000,0018 IRQ IRQ 0x0000,001C FIQ FIQ 中斷控制器工作原理 中斷基本概念與特性 S3C4510B支援多達21個中斷源,且中斷請求可由內部功能模組或外部引腳信號產生 兩種類型的中斷 正常中斷請求(Normal Interrupt Request, IRQ) 快速中斷請求(Fast Interrupt Request, FIQ) 每個中斷源都有一個中斷懸置位元( Interrupt Pending Bit) 由四個暫存器來控制中斷的產生以及中斷進行處理 中斷優先順序暫存器 (Interrupt Priority Register) 中斷模式暫存器 (Interrupt Mode Register) 中斷懸置暫存器 (Interrupt Pending Register) 中斷遮罩暫存器(Interrupt Mask Register) 中斷控制器工作原理 中斷優先順序暫存器 (Interrupt Priority Register) 每一個中斷源的索引號寫入一個預定義的中斷優先順序暫存器,以獲得特定的優先順序。 中斷優先順序預定義為0~20 中斷控制器工作原理 中斷優先順序暫存器 (Inte
文档评论(0)