首先
搞懂interrupt應該如何實做的概念
四個步驟
1. 設定GPIO為External Interrupt (引起中斷的動作)
ex. 拿 power button 當作外部中斷
先看 power button 接到哪個GPIO
通常一個GPIO是用2bits來表示四種功能
在 S3C2440 spec.中
GPF
明確定義
00 = input
01 = ouput
10 = EINT[0] (external interrupt)
11 =目前保留中
將power button所對應的GPIO(ex GPF0) 先設定為EINT
2.Enable interrupt (中斷啟動)
看系統 power button所對應的是哪一個中斷
如果對應到 EINT0
就設定INTMSK[0] 設定為 0 {0代表service available}
請見spec. 14-12
SRCPND and INTPND 請都將 EINT0的部份設定成1
3. 設定啟動條件
take EXTINT0 as sample
000: Low level
001: High level
01x:Falling edge triggered
10x:Rising edge triggered
11x:Both edge triggered
S3C2440a spec. p9-27
這個部份的設定 會影響整體效能
4. Setting Interrupt vector
將中斷後要執行內容的位置
設定到 中斷向量表中 (ISR_EINT0 位置)
沒有留言:
張貼留言