📄 fiq.lst
字号:
< //... Define for P_DA_Ctrl ....................
< .DEFINE C_PushPull 0x0000; // b0, (default)
< .DEFINE C_DoubleEnd 0x0001; // b0
< .DEFINE C_DAC_Mode 0x0000; // b1, (default)
< .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
< //========================================================================================
.PUBLIC _FIQ,_IRQ3, _IRQ5, _IRQ6
.EXTERNAL _TimeCount; // 触发计时
.EXTERNAL Per500msSet //2Hz中断,每次500ms时钟
.EXTERNAL _TimeChangeCount; //计时
00008090 .TEXT
_FIQ:
00008090 A8 DA push r1,r5 to [sp]
00008091 09 93 00 08 r1 = 0x0800
00008093 11 B3 10 70 r1&=[P_INT_Ctrl]
00008095 16 4E jnz FIQ_is_TimB
00008096 09 93 00 20 r1 = 0x2000
00008098 11 B3 10 70 r1&=[P_INT_Ctrl]
0000809A 09 4E jnz FIQ_is_TimA
0000809B 09 93 00 80 r1 = 0x8000
0000809D 11 B3 10 70 r1&=[P_INT_Ctrl]
0000809F 00 4E jnz FIQ_is_PWM
FIQ_is_PWM:
000080A0 19 D3 11 70 [P_INT_Clear] = r1
000080A2 A8 90 pop r1,r5 from [sp];
000080A3 98 9A reti;
FIQ_is_TimA:
000080A4 40 F0 7A 86 call F_FIQ_Service_SACM_A2000;
000080A6 09 93 00 20 r1 = 0x2000
000080A8 19 D3 11 70 [P_INT_Clear] = r1
000080AA A8 90 pop r1,r5 from [sp];
000080AB 98 9A reti;
FIQ_is_TimB:
000080AC 09 93 00 08 r1=0x0800;
000080AE 19 D3 11 70 [P_INT_Clear] = r1;
000080B0 A8 90 pop r1,r5 from [sp];
000080B1 98 9A reti;
_IRQ3:
000080B2 A8 DA push r1,r5 to [sp]
000080B3 09 93 80 03 r1 = 0x0380; //按键唤醒
000080B5 19 D3 11 70 [P_INT_Clear] = r1;
000080B7 A8 90 pop r1,r5 from [sp];
000080B8 98 9A reti;
//--------2Hz and 4Hz------//
_IRQ5:
000080B9 A8 DA push r1,r5 to [sp]
000080BA 48 92 r1 = 0x0008;
000080BB 11 C3 10 70 test r1,[P_INT_Ctrl];
000080BD 0E 4E jnz L_IRQ5_4Hz;
L_IRQ5_2Hz:
000080BE 09 93 FF FF r1 = 0xFFFF; //万年历时间///////////////////
000080C0 19 D3 30 03 [Per500msSet] = r1;
000080C2 11 93 3C 03 r1 = [_TimeCount]; //计时
000080C4 41 02 r1 += 1;
000080C5 19 D3 3C 03 [_TimeCount] = r1;
000080C7 44 92 r1=0x0004
000080C8 19 D3 11 70 [P_INT_Clear] = r1;
000080CA A8 90 pop r1,r5 from [sp];
000080CB 98 9A reti;
L_IRQ5_4Hz:
000080CC 19 D3 11 70 [P_INT_Clear] = r1;
000080CE A8 90 pop r1,r5 from [sp];
000080CF 98 9A reti;
//-------- 256Hz RTC --------//
_IRQ6:
000080D0 A8 DA push r1,r5 to [sp]
000080D1 41 92 r1=0x0001
000080D2 11 C3 10 70 test r1,[P_INT_Ctrl]
000080D4 05 4E jnz IRQ6_TMB2
IRQ6_TMB1:
000080D5 42 92 r1=0x0002
000080D6 19 D3 11 70 [P_INT_Clear]=r1
000080D8 A8 90 pop r1,r5 from [sp];
000080D9 98 9A reti;
IRQ6_TMB2:
000080DA 11 93 3E 03 r1=[_TimeChangeCount]
000080DC 41 02 r1+=1
000080DD 19 D3 3E 03 [_TimeChangeCount]=r1
000080DF 41 92 r1=0x0001
000080E0 19 D3 11 70 [P_INT_Clear]=r1
000080E2 A8 90 pop r1,r5 from [sp];
000080E3 98 9A reti;
.END
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -