?? isr.asm
字號:
//====================================================================================
//文件名:isr.asm
//功能描述:中斷服務函數文件
//維護記錄:2006年6月16 by hongyan.Feng
//====================================================================================
.INCLUDE SPCE061A.inc
.INCLUDE s480.inc
.EXTERNAL _ADGet1 //A/D轉換函數申明,該函數在AD.asm中定義
.EXTERNAL _ADData //外部變量用來存儲A/D轉換的數據
.EXTERNAL _Counter //外部變量用來作為計數器
.TEXT
//==============================================================================
//匯編語言格式:_BREAK
//功能描述:BREAK的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _BREAK
_BREAK:
reti
//==============================================================================
//匯編語言格式:_FIQ
//功能描述:FIQ的中斷服務函數
// 調用F_FIQ_Service_SACM_S480函數進行語音解碼和語音數據的輸出
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _FIQ
_FIQ:
push r1,r5 to[sp]
r1 = 0x2000
test r1,[P_INT_Ctrl]
jnz ?FIQ_TMA
r1 = 0x0800
test r1,[P_INT_Ctrl]
jnz ?FIQ_TMB
r1 = 0x8000
[P_INT_Clear] = r1
jmp ?exit
?FIQ_TMA:
[P_INT_Clear] = r1
call F_FIQ_Service_SACM_S480
jmp ?exit
?FIQ_TMB:
[P_INT_Clear] = r1
?exit:
pop r1,r5 from[sp]
reti
//==============================================================================
//匯編語言格式:_IRQ0
//功能描述:IRQ0的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ0
_IRQ0:
reti
//==============================================================================
//匯編語言格式:_IRQ1
//功能描述:IRQ1的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ1
_IRQ1:
reti
//==============================================================================
//匯編語言格式:_IRQ2
//功能描述:IRQ2的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ2
_IRQ2:
reti
//==============================================================================
//匯編語言格式:_IRQ3
//功能描述:IRQ3的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ3
_IRQ3:
reti
//==============================================================================
//匯編語言格式:_IRQ4
//功能描述:IRQ4的中斷服務函數
// 這個中斷服務程序中調用A/D轉換函數取轉換數據,并進行10次累加
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ4
_IRQ4:
push r1,r5 to[sp] //寄存器入棧
r1 = 0x0010
test r1,[P_INT_Ctrl] //判斷是否為IRQ4_1KHz中斷
jnz ?IRQ4_1KHz //是,轉向?IRQ4_1KHz
r1 = 0x0020
test r1,[P_INT_Ctrl] //判斷是否為IRQ4_2KHz中斷
jnz ?IRQ4_2KHz //是,轉向?IRQ4_2KHz
r1 = 0x0040
[P_INT_Clear] = r1 //清IRQ4_4KHz中斷標志
jmp ?exit
?IRQ4_1KHz:
[P_INT_Clear] = r1 //清IRQ4_1KHz中斷標志
call _ADGet1 //調用A/D轉換程序
r2 = [_ADData] //
r2 += r1 //取轉換后數據,累加
[_ADData] = r2
r1 = [_Counter] //計數器加一
r1 += 1
[_Counter] = r1
jmp ?exit
?IRQ4_2KHz:
[P_INT_Clear] = r1 //清IRQ4_2KHz中斷標志
?exit:
pop r1,r5 from[sp] //寄存器出棧
reti
//==============================================================================
//匯編語言格式:_IRQ5
//功能描述:IRQ5的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ5
_IRQ5:
reti
//==============================================================================
//匯編語言格式:_IRQ6
//功能描述:IRQ6的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ6
_IRQ6:
reti
//==============================================================================
//匯編語言格式:_IRQ7
//功能描述:IRQ7的中斷服務函數
// 如果需要,請在reti前面寫用戶的中斷服務函數
//入口參數:無
//出口參數:無
//===============================================================================
.PUBLIC _IRQ7
_IRQ7:
reti
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -