📄 fiq.asm
字号:
//========================================================
// 文件名称: FIQ.asm
// 功能描述: BusBroadcase.spj工程中断服务文件
// 维护记录: 2005-11-30 v1.0
//========================================================
.include a2000.inc
.include s480.inc
.include spce061a.inc
.include key.inc
.include Dig.inc
.external _Time_Run //外部函数,更新时间
.external _g_uiSecond_half
.external _g_4Hz_On
.external _g_Light
.external _uiA2000_S480
.text
.public _FIQ
_FIQ:
push r1,r5 to [sp]
r1 = C_FIQ_TMA
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerA
r1 = C_FIQ_TMB
test r1,[P_INT_Ctrl]
jnz L_FIQ_TimerB
L_FIQ_PWM:
r1 = C_FIQ_PWM
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_FIQ_TimerA:
[P_INT_Clear] = r1
r1 = [_uiA2000_S480]
test r1,1
jnz A2000
call F_FIQ_Service_SACM_S480
jmp L_FIQ_Exit
A2000:
call F_FIQ_Service_SACM_A2000
L_FIQ_Exit:
pop r1,r5 from [sp]
reti
L_FIQ_TimerB:
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
.public _IRQ6
_IRQ6:
push r1,r5 to [sp]
r1 = C_IRQ6_TMB2
test r1,[P_INT_Ctrl]
jnz L_IRQ6_TMB2
L_IRQ6_TMB1:
r1 = C_IRQ6_TMB1
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_IRQ6_TMB2:
call F_Key_Scan //在128Hz中调用扫描键盘
r1 = C_IRQ6_TMB2
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
.public _IRQ0
_IRQ0:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
.public _IRQ1
_IRQ1:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
.public _IRQ2
_IRQ2:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
.public _IRQ3
_IRQ3:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
.public _IRQ4
_IRQ4:
push r1,r5 to [sp]
r1 = C_IRQ4_4KHz
test r1,[P_INT_Ctrl]
jnz L_IRQ4_4KHz
r1 = C_IRQ4_2KHz
test r1,[P_INT_Ctrl]
jnz L_IRQ4_2KHz
L_IRQ4_1KHz:
r1 = C_IRQ4_1KHz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_IRQ4_2KHz:
r1 = C_IRQ4_2KHz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_IRQ4_4KHz:
call F_DIG_Drive //调用数码管驱动
r1 = C_IRQ4_4KHz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
.public _IRQ5
_IRQ5:
push r1,r5 to [sp]
r1 = C_IRQ5_2Hz
test r1,[P_INT_Ctrl]
jnz L_IRQ5_2Hz
L_IRQ5_4Hz:
r1 = [_g_4Hz_On]
test r1,0x0001
jz Exit
r1 = [_g_Light] //闪烁效果
r1 ^= 1
[_g_Light] = r1
Exit:
r1 = C_IRQ5_4Hz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
L_IRQ5_2Hz:
r1 = [P_IOB_Buffer] //数码管 冒号闪烁
r1 ^= 0x0004
[P_IOB_Buffer] = r1
r1 = [_g_uiSecond_half]
r1 += 1
[_g_uiSecond_half] = r1
call _Time_Run //更新时间
r1 = C_IRQ5_2Hz
[P_INT_Clear] = r1
pop r1,r5 from [sp]
reti
.public _IRQ7
_IRQ7:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
.public _BREAK
_BREAK:
push r1,r5 to [sp]
pop r1,r5 from [sp]
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -