📄 irq.asm
字号:
//.public _FIQ
.public _BREAK,_IRQ0, _IRQ1, _IRQ2, _IRQ3, _IRQ6, _IRQ7
//..................................................
.include hardware.inc;
.TEXT
//_FIQ:
// push R1,R4 to [SP]
// r1 = 0x2000
// test r1,[P_INT_Ctrl]
// jnz L_FIQ_TimerA
// r1 = 0x0800
// test r1,[P_INT_Ctrl]
// jnz L_FIQ_TimerB
//L_FIQ_PWM:
// r1 = C_FIQ_PWM
// [P_INT_Clear] = r1
// pop R1,R4 from [SP];
// reti;
//L_FIQ_TimerA:
// [P_INT_Clear] = r1
// pop R1,R4 from [SP];
// reti;
//L_FIQ_TimerB:
// [P_INT_Clear] = r1
// pop R1,R4 from [SP];
// reti;
_BREAK:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ0:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ1:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ2:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ3:
push r1,r4 to [sp];
r1 = 0x0100;
test r1,[P_INT_Ctrl];
jnz L_IRQ3_Ext1;
r1 = 0x0200;
test r1,[P_INT_Ctrl];
jnz L_IRQ3_Ext2;
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
L_IRQ3_Ext2:
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
L_IRQ3_Ext1:
[P_INT_Clear] = R1;
pop R1,R4 from [SP];
reti;
//_IRQ4:
// push r1,r4 to [sp];
// r1 = C_IRQ4_1KHz;
// [P_INT_Clear] = r1;
// pop r1,r4 from [sp];
// reti;
//_IRQ5:
// push r1,r4 to [sp];
// r1 = 0x0008;
// test r1,[P_INT_Ctrl];
// jnz L_IRQ5_4Hz;
// r1 = 0x0004;
// [P_INT_Clear] = R1;
// / pop R1,R4 from [SP];
// reti;
//L_IRQ5_4Hz:
// [P_INT_Clear] = R1;
// pop R1,R4 from [SP];
// reti;
_IRQ6:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
_IRQ7:
push r1,r4 to [sp];
pop r1,r4 from [sp];
reti;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -