📄 fiq.lst
字号:
< .DEFINE C_PWM_Mode 0x0002; // b1
<
< .DEFINE C_D1_Direct 0x0000; // DAC1 latch
< .DEFINE C_D1_LatchA 0x0008; //
< .DEFINE C_D1_LatchB 0x0010; //
< .DEFINE C_D1_LatchAB 0x0018; //
<
< .DEFINE C_D2_Direct 0x0000; // DAC2 latch
< .DEFINE C_D2_LatchA 0x0020; //
< .DEFINE C_D2_LatchB 0x0040; //
< .DEFINE C_D2_LatchAB 0x00C0; //
<
< //... Define for P_LVD_Ctrl ...................
< .DEFINE C_LVD24V 0x0000; // LVD = 2.4V
< .DEFINE C_LVD28V 0x0001; // LVD = 2.8V
< .DEFINE C_LVD32V 0x0002; // LVD = 3.2V
< .DEFINE C_LVD36V 0x0003; // LVD = 3.6V
<
<
< .EXTERNAL F_SP_Read_INT_Status; // for further use
< .EXTERNAL F_SP_Write_INT_Status; // for further use
< .EXTERNAL F_SP_Set_INT_Vector; // for further use
< .EXTERNAL F_SP_Clear_INT_Vector; // for further use
<
< .EXTERNAL F_SP_Send_Out; //
< .EXTERNAL F_SP_Send_DAC1; //
< .EXTERNAL F_SP_Send_DAC2; //
< .EXTERNAL F_SP_Send_Two_DAC; //
< .EXTERNAL F_SP_Init_HW; //
<
< .EXTERNAL R_InterruptStatus;
<
<
< .EXTERNAL F_SP_RampUpDAC1;
< .EXTERNAL F_SP_RampDnDAC1;
< .EXTERNAL F_SP_RampUpDAC2;
< .EXTERNAL F_SP_RampDnDAC2;
<
< .EXTERNAL F_SP_InitQueue;
< .EXTERNAL F_SP_ReadQueue;
< .EXTERNAL F_SP_WriteQueue;
< .EXTERNAL F_SP_TestQueue;
<
<
<
< .EXTERNAL F_SP_Get_ADC
<
< .EXTERNAL F_SP_Set_P_TimerA_Ctrl
< .EXTERNAL F_SP_Set_P_TimerA_Data
< .EXTERNAL F_SP_Set_P_TimerB_Ctrl
< .EXTERNAL F_SP_Set_P_TimerB_Data
< .EXTERNAL F_SP_Set_P_INT_Ctrl
< .EXTERNAL F_SP_Set_P_INT_Clear
< .EXTERNAL F_SP_Set_P_SystemClock
< .EXTERNAL F_SP_Set_P_DAC_Ctrl
< .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
< //========================================================================================
.external _Lxsum;
.external _LxFlag;
.external _g_uisum;
.external _g_ucIntFlag;
.PUBLIC _FIQ
.PUBLIC _IRQ5
.PUBLIC _IRQ6
00008095 .TEXT
_FIQ:
00008095 A0 D8 PUSH r1,r4 to [sp];
00008096 09 93 00 20 r1=0x2000;
00008098 11 C3 10 70 test r1,[P_INT_Ctrl];
0000809A 0B 4E jnz L_FIQ_TimerA;
0000809B 09 93 00 08 r1=0x0800;
0000809D 11 C3 10 70 test r1,[P_INT_Ctrl];
0000809F 0C 4E jnz L_FIQ_TimerB;
L_FIQ_PWM:
000080A0 09 93 00 80 r1=C_FIQ_PWM;
000080A2 19 D3 11 70 [P_INT_Clear]=r1;
000080A4 A0 90 POP R1,R4 from[sp];
000080A5 98 9A reti;
L_FIQ_TimerA:
000080A6 19 D3 11 70 [P_INT_Clear]=r1;
000080A8 40 F0 8C 87 call F_FIQ_Service_SACM_S480;
000080AA A0 90 pop r1,r4 from [sp];
000080AB 98 9A reti;
L_FIQ_TimerB:
000080AC 19 D3 11 70 [P_INT_Clear]=r1;
000080AE A0 90 pop r1,r4 from [sp];
000080AF 98 9A reti;
_IRQ5: //定时3秒的中断程序
000080B0 A0 D8 push r1,r4 to [sp];
000080B1 48 92 r1 =0x0008;
000080B2 11 C3 10 70 test r1,[P_INT_Ctrl];
000080B4 14 4E jnz L_4Hz; // Timer A FIQ entrence
000080B5 44 92 r1 = 0x0004;
000080B6 19 D3 11 70 [P_INT_Clear] = r1; //清中断
000080B8 11 93 EF 01 r1 = [_g_uisum] //取时基信号量
000080BA 41 02 r1 += 1;
000080BB 46 42 cmp r1,6;
000080BC 04 1E jnb loop0;
000080BD 19 D3 EF 01 [_g_uisum]=r1 //保存时基信号量
000080BF A0 90 pop r1,r4 from [sp];
000080C0 98 9A reti;
loop0:
000080C1 41 92 r1 = 0x0001;
000080C2 19 D3 EC 01 [_g_ucIntFlag] = r1; //设置中断标识
000080C4 40 92 r1 = 0
000080C5 19 D3 EF 01 [_g_uisum] = r1
000080C7 A0 90 pop r1,r4 from [sp];
000080C8 98 9A reti;
L_4Hz:
000080C9 48 92 r1 = 0x0008;
000080CA 19 D3 11 70 [P_INT_Clear] = r1; //清中断
000080CC A0 90 pop r1,r4 from [sp];
000080CD 98 9A reti;
_IRQ6:
000080CE A0 D8 push r1,r4 to [sp];
000080CF 42 92 r1 = 0x0002;
000080D0 19 D3 11 70 [P_INT_Clear] = r1;
000080D2 11 93 F2 01 r1 = [_Lxsum] //取时基信号量
000080D4 41 02 r1 += 1;
000080D5 09 43 40 00 cmp r1,64;
000080D7 04 1E jnb loop;
000080D8 19 D3 F2 01 [_Lxsum]=r1 //保存时基信号量
000080DA A0 90 pop r1,r4 from [sp];
000080DB 98 9A reti;
loop:
000080DC 41 92 r1 = 0x0001;
000080DD 19 D3 F3 01 [_LxFlag] = r1; //设置中断标识
000080DF 40 92 r1 = 0
000080E0 19 D3 F2 01 [_Lxsum] = r1
000080E2 A0 90 pop r1,r4 from [sp];
000080E3 98 9A reti;
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -