混合信號嵌入式設計實驗指南-數字實驗之:實驗2—中斷
目標:本實驗專門用于介紹PSoC CPU 的中斷句柄。注意這個實驗分成7 個部分:LAB2A 到LAB 2G 。在繼續(xù)下一個實驗前,要成功地完成每一個部分。
完成這個實驗后,讀者應能做到:
用C 語言寫控制程序;
理解如何處理一個發(fā)布的中斷;
理解如何處理一個未處理的中斷;
將CPU 設置在休眠模式,然后用休眠定時器未處理的中斷喚醒它;
使用匯編語言編寫的中斷句柄,來操作在C 程序里聲明的一個全局變量;
使用C 語言編寫的中斷句柄,來操作在C 程序里聲明的一個全局變量;
在中斷向量表空間中,放置一個小的中斷服務程序ISR。
假設:
所有先前實驗的假設;
使能編譯器用于開發(fā)系統。
要求的材料:
CY3210 PSoCEval1 板子;
面包板線。
要求的設備:
無。
相關的參考資料
所有前面實驗的參考資料;
Cypress C 語言編譯器用戶指南。
中斷控制器為PSoC 混合信號陣列內的不同硬件資源提供了一種機制,可以將程序的執(zhí)行改變到新的地址,而不需要考慮當前正在執(zhí)行的任務。圖1.13 給出了中斷處理的方塊圖。
對于CPU,要識別一個特殊資源的中斷,下面必須是真(有效)的:
必須設置它的中斷使能屏蔽;
圖1.13 中斷處理
它必須是所有未處理中斷中,級別最高的;必須設置全局中斷使能。CPU 通過下面響應這個請求:將當前程序計數器的值保存起來;將當前標志寄存器的值保存起來。跳轉到指定的中斷向量地址。對于27x 系列的器件,有18 個不同的中斷源。
表1.2 從最高優(yōu)先級到最低優(yōu)先級,給出了每個中斷源和它的向量地址。
表1.2 中斷向量表
中斷源 | 向量位置 |
硬件復位 | 0x0000 |
供電監(jiān)視器 | 0x0004 |
模擬列0 | 0x0008 |
模擬列1 | 0x000c |
模擬列2 | 0x0010 |
模擬列3 | 0x0014 |
VC3 | 時鐘 |
GPIO | 0x001c |
數字塊00 | 0x0020 |
數字塊01 | 0x0024 |
數字塊02 | 0x0028 |
數字塊03 | 0x002c |
數字塊10 | 0x0030 |
數字塊11 | 0x0034 |
數字塊12 | 0x0038 |
數字塊13 | 0x003c |
I2C | 0x0060 |
休眠定時器 | 0x0064 |
在中斷服務程序的末尾,先前程序計數器和標志寄存器的值被恢復到它們原來的值,原先的程序從離開它的地方繼續(xù)。
練習2A-1 :假設正確的使能全局中斷和中斷屏蔽,可能永遠不能服務較低優(yōu)先級的中斷。這是為什么?
評論