外部中斷控制

2021-06-27 07:41:31 字數 1440 閱讀 9237

內外部中斷,除了**器中斷和復位中斷不可遮蔽,其餘中斷均可遮蔽,除了不可遮蔽中斷和引導載入中斷ep0i或者lp4i外,所有中斷在系統復位時都是預設被遮蔽的。當1個中斷正在執行服務期間,adsp會在每個週期都對中斷鎖存暫存器ilat中的相應位清0,以禁止該中斷服務程式重複響應。

涉及到中斷的主要有以下這幾個暫存器:ilat

,imask

,pmask,此3

個暫存器位定義一致,以及sqctl下的gie位控制全域性中斷,和intctl控制irq3-0的觸發方式、time1-0的啟動。

暫存器高

32位:

暫存器低

32位:

ilat: 中斷鎖存暫存器,是1個64位的唯讀暫存器,通過兩個32位的暫存器ilatl和ilath對其進行訪問,每位對應一種中斷型別,當中斷產生時,該暫存器中相應的位置1,中斷位按照中斷優先順序排列,位0對應最低中斷型別。ps:對ilath、ilatl暫存器的置1操作只能通過對ilatsth、ilatstl進行,寫入ilatst的值跟ilat的值進行按位或操作,結果重新裝入ilat,因此對ilatst寫入1時可將ilat中相應位置1,對暫存器ilatst寫入0則不能改變ilat中的值;其次對ilat的清0 操作通過ilatclh、ilatcll暫存器進行,寫入ilatcl的值跟暫存器ilat中的值按為與操作,得到結果重新載入ilat中,因此對ilatcl寫入1時,不能改變ilat的值,寫入0,可將ilat清0。可用ilatst、  ilatcl軟體模擬中斷事件。

imask

:中斷遮蔽暫存器,只有置1才允許響應相應的中斷服務。

pmask

:中斷指標遮蔽暫存器,鎖存正在執行的中斷,如果允許中斷巢狀,只有在高於目前pmask位的中斷才可以響應。服務程式執行完畢後,系統執行rti或reti指令清0,利用rds指令可強制清0。

intctl:中斷控制暫存器,用於定義中斷引腳的中斷觸發型別(電平或邊沿觸發)、控制定時器0、1執行或停止。

sqctl:程式控制暫存器,是32位暫存器,高20位保留,對它的操作僅能通過sqctlst和sqctlcl進行,

sqctl_gie位控制全域性中斷,1使能,0遮蔽。

庫函式:

interrupt(sigirq2, irq2_int);//將服務程式的函式指標放入中斷向量表,同時開啟對應中斷。

ZigBee外部中斷控制

1,首先我們來認識一下幾個暫存器 ien0,ien1,ien2 各外設或埠中斷使能暫存器 p0ien p1ien,p2ien 通用i o 中斷使能暫存器 pictl 埠中斷控制為位,配置上公升沿觸發中斷還是下降沿觸發中斷 ea 全域性中斷總開關,這個開關在ien0暫存器的第七位,可位定址。如果想設定...

外部中斷控制LED燈開關

在51微控制器中,有2路外部中斷輸入int0 p3.2 和int1 p3.3 2路中斷觸發訊號 低電平觸發和下降沿觸發。中斷允許暫存器ie 0 禁止中斷 1 使能中斷 tf1 定時 計數器t1溢位中斷請求標誌位 0 無中斷請求 1 有中斷請求 tr1 定時 計數器t1啟動位 0 停止 定時 計數器 ...

STM32之外部中斷控制

一 stm32外部中斷 1 stm32外部中斷結構圖 如上圖所示 主要包括四個環節,gpio afio exti nvic。以stm32f103ve 100腳 為例說明硬體模組的數量 gpio 80個 afio選擇通道 16個 外部中斷線exti 16 3 19個 nvic 1個 2 exti控制器...