📄 isr1.lst
字号:
< .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 A2000.inc
< //////////////////////////////////////////////////////////////////////////////////////////
< // Progarm: SACM-A2000 API external definition
< // Writen by: Andy
< // Date: 2000/06/20
< //////////////////////////////////////////////////////////////////////////////////////////
<
< .external F_SACM_A2000_Initial;
< .external F_SACM_A2000_ServiceLoop;
< .external F_SACM_A2000_Play;
< .external F_SACM_A2000_Stop;
< .external F_SACM_A2000_Pause;
< .external F_SACM_A2000_Resume;
<
< .external F_SACM_A2000_Volume;
< .external F_SACM_A2000_Status;
<
< .external F_SACM_A2000_PcPlayInitial;
<
< .external F_FIQ_Service_SACM_A2000;
<
<
< //========================================================================================
< // End of a2000.inc
< //========================================================================================
<
.INCLUDE Resource.inc
<
< // Resource Table
< // Created by IDE, Do not modify this table
<
00008009 < .TEXT
< .external _RES_Table;
< .external _RES_T034_16K_SA;
< .external _RES_T034_16K_EA;
< .external _RES_T046_16K_SA;
< .external _RES_T046_16K_EA;
< .external _RES_T047_16K_SA;
< .external _RES_T047_16K_EA;
< .external _RES_T048_16K_SA;
< .external _RES_T048_16K_EA;
< .external _RES_T049_16K_SA;
< .external _RES_T049_16K_EA;
< .external _RES_T050_16K_SA;
< .external _RES_T050_16K_EA;
< .external _RES_T051_16K_SA;
< .external _RES_T051_16K_EA;
< .external _RES_T052_16K_SA;
< .external _RES_T052_16K_EA;
< .external _RES_T053_16K_SA;
< .external _RES_T053_16K_EA;
< .external _RES_T054_16K_SA;
< .external _RES_T054_16K_EA;
< .external _RES_T055_16K_SA;
< .external _RES_T055_16K_EA;
< .external _RES_T056_16K_SA;
< .external _RES_T056_16K_EA;
<
< // End Table
.EXTERNAL _giADC_DataSave;
.EXTERNAL _fOut;
.EXTERNAL F_turn_off_relay;
.EXTERNAL F_LED_Show
.DEFINE P_ADC_MUX_Data 0x702c
.DEFINE P_ADC_MUX_Ctrl 0x702b
0000035B .IRAM
.PUBLIC G_Sum
0000035B 0A 00 .VAR G_Sum = 10;
.PUBLIC _G_ADC_flag
0000035C 00 00 .VAR _G_ADC_flag = 0;
0000035D .IRAM
00008009 .TEXT
//===================================================================================
//函数:IRQ5()
//语法:void IRQ5(void)
//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
//参数:无
//返回:无
//===================================================================================
.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 53 86 call F_FIQ_Service_SACM_A2000;
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;
//===================================================================================
//函数:IRQ5()
//语法:void IRQ5(void)
//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
//参数:无
//返回:无
//===================================================================================
.PUBLIC _IRQ5;
_IRQ5:
00008024 A0 D8 PUSH r1,r4 TO [sp];
00008025 48 92 r1 = 0x0008;
00008026 11 C3 10 70 test r1,[P_INT_Ctrl];
00008028 21 4E jnz L_4Hz; // 开Timer A FIQ
00008029 44 92 r1 = 0x0004;
0000802A 19 D3 11 70 [P_INT_Clear] = r1; //清中断
// [P_UART_Data] = r1; //通过串行通讯将采样的温度数据上传
0000802C 11 93 5B 03 r1 = [G_Sum]
0000802E 41 22 r1 = r1 - 1
0000802F 19 D3 5B 03 [G_Sum] = r1
00008031 02 5E jz ADC_Value
00008032 A0 90 POP r1,r4 FROM [sp]
00008033 98 9A RETI;
ADC_Value:
00008034 40 92 r1 = 0;
L_AD:
00008035 12 95 2B 70 R2 = [P_ADC_MUX_Ctrl] //读寄存器[P_ADC_MUX_Ctrl]的B15位
00008037 0A C5 00 80 TEST R2,0x8000 //判断是否转换完毕
00008039 45 5E JZ L_AD //否,继续转换
0000803A 13 97 2C 70 r3 = [P_ADC_MUX_Data] //是,则读出[P_ADC_MUX_DATA]转换结果
0000803C 48 5E jz L_AD
0000803D 7B 97 r3 = r3 lsr 4
0000803E 6B 97 r3 = r3 lsr 2
0000803F 09 05 08 03 r2 = r1 + _giADC_DataSave
00008041 4A 42 cmp r1,10
00008042 4E 4E jne L_AD
//[r2] = r3
00008043 41 92 r1 = 1;
00008044 19 D3 5C 03 [_G_ADC_flag] = r1;
00008046 4A 92 r1 = 10
00008047 19 D3 5B 03 [G_Sum] = r1
00008049 03 EE jmp exit_Int;
L_4Hz:
0000804A 48 92 r1 = 0x0008;
0000804B 19 D3 11 70 [P_INT_Clear] = r1; //清中断
exit_Int:
0000804D A0 90 POP r1,r4 FROM [sp];
0000804E 98 9A RETI;
//===================================================================================
//函数:IRQ5()
//语法:void IRQ5(void)
//描述:利用2Hz中断定时1秒,1秒钟采样一次温度值
//参数:无
//返回:无
//===================================================================================
.PUBLIC _IRQ6;
_IRQ6:
0000804F A0 D8 PUSH r1,r4 to [sp];
00008050 41 92 r1 = 0x0001;
00008051 11 C3 10 70 TEST r1,[P_INT_Ctrl];
00008053 05 4E JNZ _IRQ6_TMB2;
00008054 42 92 r1=0x0002;
00008055 19 D3 11 70 [P_INT_Clear]=r1;
00008057 A0 90 POP r1,r4 FROM [sp];
00008058 98 9A RETI;
_IRQ6_TMB2:
00008059 19 D3 11 70 [P_INT_Clear]=r1;
0000805B 40 F0 FC 97 call F_LED_Show;
0000805D A0 90 POP r1,r4 FROM [sp];
0000805E 98 9A RETI;
//===================================================================================
//函数:IRQ1()
//语法:void IRQ1(void)
//描述:利用中断定时10ms秒,确定加热时间
//参数:无
//返回:无
//===================================================================================
.PUBLIC _IRQ1;
_IRQ1:
0000805F A0 D8 PUSH r1,r4 to [sp];
00008060 09 93 00 10 r1 = 0x1000;
00008062 19 D3 11 70 [P_INT_Clear]=r1;
00008064 11 93 56 03 r1 = [_fOut]
00008066 41 22 r1 = r1 -1;
00008067 19 D3 56 03 [_fOut] = r1;
00008069 02 5E jz l;
exit:
0000806A A0 90 POP r1,r4 FROM [sp];
0000806B 98 9A RETI;
l:
0000806C 40 F0 E0 95 call F_turn_off_relay;
0000806E 45 EE jmp exit;
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -