📄 isr.lst
字号:
< .EXTERNAL F_SP_Set_P_ADC_Ctrl
<
<
<
< //--------------------------------------------
< SACM_MACRO1: .MACRO
<
< .ENDM
<
< SACM_MACRO2: .MACRO
<
< .ENDM
<
<
<
<
< //.define PC_Play_Enable_A2000 1 // Enable the PC-Play function for SACM-A2000 module
< //.define PC_Play_Enable_S480 1 // Enable the PC-Play function for SACM-S480 module
< //.define PC_Play_Enable_S240 1 // Enable the PC-Play function for SACM-S240 module
< //.define PC_Play_Enable_MS01 1 // Enable the PC-Play function for SACM-MS01 module
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
.include S480.inc
< //////////////////////////////////////////////////////////////////////////////////////////
< // Progarm: SACM-S480 API external definition
< // Writen by: Andy
< // Date: 2000/06/20
< // 2001/02/10
< //////////////////////////////////////////////////////////////////////////////////////////
< .external F_SACM_S480_Initial;
< .external F_SACM_S480_ServiceLoop;
< .external F_SACM_S480_Play;
< .external F_SACM_S480_Stop;
< .external F_SACM_S480_Pause;
< .external F_SACM_S480_Resume;
<
< .external F_SACM_S480_VolumeUp;
< .external F_SACM_S480_VolumeDn;
<
< .external F_SACM_S480_SpeechStatus;
<
< .external F_SACM_S480_PcPlayInitial;
<
< .external F_FIQ_Service_SACM_S480;
<
<
< //========================================================================================
< // End of S480.inc
< //========================================================================================
.include Resource.inc
<
< // Resource Table
< // Created by IDE, Do not modify this table
<
00008009 < .TEXT
< .external _RES_Table;
< .external _RES_09_48K_SA;
< .external _RES_09_48K_EA;
< .external _RES_02_48K_SA;
< .external _RES_02_48K_EA;
< .external _RES_03_48K_SA;
< .external _RES_03_48K_EA;
< .external _RES_04_48K_SA;
< .external _RES_04_48K_EA;
< .external _RES_05_48K_SA;
< .external _RES_05_48K_EA;
< .external _RES_06_48K_SA;
< .external _RES_06_48K_EA;
< .external _RES_07_48K_SA;
< .external _RES_07_48K_EA;
< .external _RES_08_48K_SA;
< .external _RES_08_48K_EA;
< .external _RES_01_48K_SA;
< .external _RES_01_48K_EA;
< .external _RES_12_48K_SA;
< .external _RES_12_48K_EA;
< .external _RES_11_48K_SA;
< .external _RES_11_48K_EA;
< .external _RES_10_48K_SA;
< .external _RES_10_48K_EA;
<
< // End Table
.public _BREAK;
//.public _FIQ;
.public _IRQ0;
//.public _IRQ1;
.public _IRQ2;
//.public _IRQ3;
.public _IRQ4;
.public _IRQ5;
.public _IRQ6;
.public _IRQ7;
.external _sum;
.external _INTflag;
.public _FIQ;
_FIQ:
00008009 A0 D8 PUSH r1,r4 to [sp];
0000800A 09 93 00 20 r1=0x2000;
0000800C 11 C3 10 70 test r1,[P_INT_Ctrl];
0000800E 0B 4E jnz L_FIQ_TimerA;
0000800F 09 93 00 08 r1=0x0800;
00008011 11 C3 10 70 test r1,[P_INT_Ctrl];
00008013 0C 4E jnz L_FIQ_TimerB;
L_FIQ_PWM:
00008014 09 93 00 80 r1=C_FIQ_PWM;
00008016 19 D3 11 70 [P_INT_Clear]=r1;
00008018 A0 90 POP R1,R4 from[sp];
00008019 98 9A reti;
L_FIQ_TimerA:
0000801A 19 D3 11 70 [P_INT_Clear]=r1;
0000801C 40 F0 55 87 call F_FIQ_Service_SACM_S480;
0000801E A0 90 pop r1,r4 from [sp];
0000801F 98 9A reti;
L_FIQ_TimerB:
00008020 19 D3 11 70 [P_INT_Clear]=r1;
00008022 A0 90 pop r1,r4 from [sp];
00008023 98 9A reti;
/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service routine Area
// Service for IRQ1 - IRQ7
// User's IRQ must hook on here
/////////////////////////////////////////////////////////////////////////////////////////
_BREAK:
00008024 A0 D8 push r1,r4 to [sp];
00008025 A0 90 pop r1,r4 from [sp];
00008026 98 9A reti;
_IRQ0:
00008027 A0 D8 push r1,r4 to [sp];
00008028 A0 90 pop r1,r4 from [sp];
00008029 98 9A reti;
//_IRQ1:
0000802A A0 D8 push r1,r4 to [sp];
0000802B A0 90 pop r1,r4 from [sp];
0000802C 98 9A reti;
_IRQ2:
0000802D A0 D8 push r1,r4 to [sp];
0000802E A0 90 pop r1,r4 from [sp];
0000802F 98 9A reti;
//_IRQ3:
00008030 A0 D8 push r1,r4 to [sp];
00008031 A0 90 pop r1,r4 from [sp];
00008032 98 9A reti;
_IRQ4:
00008033 A0 D8 push r1,r4 to [sp];
00008034 A0 90 pop r1,r4 from [sp];
00008035 98 9A reti;
//////////////////////////////
_IRQ5: //定时3秒的中断程序
00008036 A0 D8 push r1,r4 to [sp];
00008037 48 92 r1 =0x0008;
00008038 11 C3 10 70 test r1,[P_INT_Ctrl];
0000803A 14 4E jnz L_4Hz; // Timer A FIQ entrence
0000803B 44 92 r1 = 0x0004;
0000803C 19 D3 11 70 [P_INT_Clear] = r1; //清中断
0000803E 11 93 A9 01 r1 = [_sum] //取时基信号量
00008040 41 02 r1 += 1;
00008041 46 42 cmp r1,6;
00008042 04 5E je loop0;
00008043 19 D3 A9 01 [_sum]=r1 //保存时基信号量
00008045 A0 90 pop r1,r4 from [sp];
00008046 98 9A reti;
loop0:
00008047 41 92 r1 = 0x0001;
00008048 19 D3 A8 01 [_INTflag] = r1; //设置中断标识
0000804A 40 92 r1 = 0
0000804B 19 D3 A9 01 [_sum] = r1
0000804D A0 90 pop r1,r4 from [sp];
0000804E 98 9A reti;
L_4Hz:
0000804F 48 92 r1 = 0x0008;
00008050 19 D3 11 70 [P_INT_Clear] = r1; //清中断
00008052 A0 90 pop r1,r4 from [sp];
00008053 98 9A reti;
//////////////////////////////
_IRQ6:
00008054 A0 D8 push r1,r4 to [sp];
00008055 A0 90 pop r1,r4 from [sp];
00008056 98 9A reti;
_IRQ7:
00008057 A0 D8 push r1,r4 to [sp];
00008058 A0 90 pop r1,r4 from [sp];
00008059 98 9A reti;
//========================================================================================
// End of isr.asm
//========================================================================================
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -