📄 isr.asm
字号:
//isr.asm
.TEXT
.include SPCE061A.inc
.external F_FIQ_Service_SACM_S480
.external _Show_AD
.external _Key_ServiceLoop
.public _BREAK;
.public _FIQ;
.public _IRQ0;
.public _IRQ1;
.public _IRQ2;
.public _IRQ3;
.public _IRQ4;
.public _IRQ5;
.public _IRQ6;
_BREAK:
//add your code here
reti;
_FIQ:
push r1,r5 to [sp]
r1 = [P_INT_Ctrl] // 读取中断标志
test r1,C_FIQ_TMA // 是否为TimerA的FIQ中断?
jnz ?L_FIQ_TMA // 是则跳转
?L_FIQ_PWM: // Fosc/1024的FIQ中断
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
?L_FIQ_TMA: // TimerA的FIQ中断
r1 = 1
[P_Watchdog_Clear] = r1
call F_FIQ_Service_SACM_S480 // 调用音频中断服务程序
r1 = C_FIQ_TMA
[P_INT_Clear] = r1 // 清中断标志位
pop r1,r5 from [sp]
reti
_IRQ0:
//add your code here
reti;
_IRQ1:
reti
_IRQ2:
//add your code here
reti;
_IRQ3:
//add your code here
reti;
_IRQ4:
//add your code here
reti;
_IRQ5:
//add your code here
push r1,r5 to [sp]
r1 = [P_INT_Ctrl] // 读取中断标志
test r1,C_IRQ5_4Hz // 是否为IRQ5的4HZ中断?
jnz ?L_IRQ5_4Hz // 是则跳转
test r1,C_IRQ5_2Hz // 是否为IRQ5的4HZ中断?
jnz ?L_IRQ5_2Hz // 是则跳转
?L_IRQ5_2Hz:
r1 = C_IRQ5_2Hz
[P_INT_Clear] = r1
call _Show_AD // 循环播放信息
pop r1,r5 from [sp]
reti
?L_IRQ5_4Hz:
r1 = C_IRQ5_4Hz
[P_INT_Clear] = r1 // 清中断标志位
call _Key_ServiceLoop // 调用键盘扫描函数
pop r1,r5 from [sp]
reti
_IRQ6:
//add your code here
reti;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -