📄 isr.asm
字号:
.INCLUDE SPCE061A.inc
.INCLUDE Key.inc
.PUBLIC _BREAK
.PUBLIC _FIQ
.PUBLIC _IRQ0
.PUBLIC _IRQ1
.PUBLIC _IRQ2
.PUBLIC _IRQ3
.PUBLIC _IRQ4
.PUBLIC _IRQ5
.PUBLIC _IRQ6
.PUBLIC _IRQ7
/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service Routine Area
// Service for BREAK, FIQ, IRQ0-IRQ7
// User's ISR must hook on here
/////////////////////////////////////////////////////////////////////////////////////////
.TEXT
_BREAK:
push r1,r5 to [sp]
/////----- BREAK User Code -----/////
/////----- BREAK End -----/////
pop r1,r5 from [sp]
reti
_FIQ:
push r1,r5 to [sp]
?L_FIQ_PWM:
r1 = C_FIQ_PWM
test r1, [P_INT_Ctrl]
jz ?L_FIQ_TimerA
[P_INT_Clear] = r1
/////----- FIQ_PWM User Code -----/////
/////----- FIQ_PWM End -----/////
?L_FIQ_TimerA:
r1 = C_FIQ_TMA
test r1, [P_INT_Ctrl]
jz ?L_FIQ_TimerB
[P_INT_Clear] = r1
/////----- FIQ_TimerA User Code -----/////
/////----- FIQ_TimerA End -----/////
?L_FIQ_TimerB:
r1 = C_FIQ_TMB
test r1, [P_INT_Ctrl]
jz ?L_FIQ_Exit
[P_INT_Clear] = r1
/////----- FIQ_TimerB User Code -----/////
/////----- FIQ_TimerB End -----/////
?L_FIQ_Exit:
pop r1,r5 from [sp]
reti
_IRQ0:
push r1,r5 to [sp]
r1 = C_IRQ0_PWM
[P_INT_Clear] = r1
/////----- IRQ0_PWM User Code -----/////
/////----- IRQ0_PWM End -----/////
pop r1,r5 from [sp]
reti
_IRQ1:
push r1,r5 to [sp]
r1 = C_IRQ1_TMA
[P_INT_Clear] = r1
/////----- IRQ1_TimerA User Code -----/////
/////----- IRQ1_TimerA End -----/////
pop r1,r5 from [sp]
reti
_IRQ2:
push r1,r5 to [sp]
r1 = C_IRQ2_TMB
[P_INT_Clear] = r1
/////----- IRQ2_TimerB User Code -----/////
/////----- IRQ2_TimerB End -----/////
pop r1,r5 from [sp]
reti
_IRQ3:
push r1,r5 to [sp];
?L_IRQ3_KEY:
r1 = C_IRQ3_KEY
test r1,[P_INT_Ctrl]
jz ?L_IRQ3_EXT1
[P_INT_Clear] = r1
/////----- IRQ3_KEY User Code -----/////
/////----- IRQ3_KEY End -----/////
?L_IRQ3_EXT1:
r1 = C_IRQ3_EXT1
test r1,[P_INT_Ctrl]
jz ?L_IRQ3_EXT2
[P_INT_Clear] = r1
/////----- IRQ3_EXT1 User Code -----/////
/////----- IRQ3_EXT1 End -----/////
?L_IRQ3_EXT2:
r1 = C_IRQ3_EXT2
test r1,[P_INT_Ctrl]
jz ?L_IRQ3_Exit
[P_INT_Clear] = r1
/////----- IRQ3_EXT2 User Code -----/////
/////----- IRQ3_EXT2 End -----/////
?L_IRQ3_Exit:
pop r1,r5 from [sp]
reti
_IRQ4:
push r1,r5 to [sp];
?L_IRQ4_1KHz:
r1 = C_IRQ4_1KHz
test r1,[P_INT_Ctrl]
jz ?L_IRQ4_2KHz
[P_INT_Clear] = r1
/////----- IRQ4_1KHz User Code -----/////
/////----- IRQ4_1KHz End -----/////
?L_IRQ4_2KHz:
r1 = C_IRQ4_2KHz
test r1,[P_INT_Ctrl]
jz ?L_IRQ4_4KHz
[P_INT_Clear] = r1
/////----- IRQ4_2KHz User Code -----/////
/////----- IRQ4_2KHz End -----/////
?L_IRQ4_4KHz:
r1 = C_IRQ4_4KHz
test r1,[P_INT_Ctrl]
jz ?L_IRQ4_Exit
[P_INT_Clear] = r1
/////----- IRQ4_4KHz User Code -----/////
/////----- IRQ4_4KHz End -----/////
?L_IRQ4_Exit:
pop r1,r5 from [sp]
reti
_IRQ5:
push r1,r5 to [sp];
?L_IRQ5_2Hz:
r1 = C_IRQ5_2Hz
test r1,[P_INT_Ctrl]
jz ?L_IRQ5_4Hz
[P_INT_Clear] = r1
/////----- IRQ5_2Hz User Code -----/////
/////----- IRQ5_2Hz End -----/////
?L_IRQ5_4Hz:
r1 = C_IRQ5_4Hz
test r1,[P_INT_Ctrl]
jz ?L_IRQ5_Exit
[P_INT_Clear] = r1
/////----- IRQ5_4Hz User Code -----/////
/////----- IRQ5_4Hz End -----/////
?L_IRQ5_Exit:
pop r1,r5 from [sp]
reti
_IRQ6:
push r1,r5 to [sp];
?L_IRQ6_TMB1:
r1 = C_IRQ6_TMB1
test r1,[P_INT_Ctrl]
jz ?L_IRQ6_TMB2
[P_INT_Clear] = r1
/////----- IRQ6_TMB1 User Code -----/////
/////----- IRQ6_TMB1 End -----/////
?L_IRQ6_TMB2:
r1 = C_IRQ6_TMB2
test r1,[P_INT_Ctrl]
jz ?L_IRQ6_Exit
[P_INT_Clear] = r1
/////----- IRQ6_TMB2 User Code -----/////
call F_Key_Scan // 按键扫描中断服务程序
/////----- IRQ6_TMB2 End -----/////
?L_IRQ6_Exit:
pop r1,r5 from [sp]
reti
_IRQ7:
push r1,r5 to [sp]
/////----- IRQ7_UART User Code -----/////
/////----- IRQ7_UART End -----/////
pop r1,r5 from [sp]
reti
//========================================================================================
// End of isr.asm
//========================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -