📄 isr.lst
字号:
<
< .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
<
< //========================================================================================
< // add by abin for easy programming
< //========================================================================================
<
< .define FoscCLK_20 0x00; //Fosc=20.480MHz
< .define FoscCLK_24 0x20; //Fosc=24.576MHz
< .define FoscCLK_32 0x40; //Fosc=32.768MHz
< .define FoscCLK_40 0x60; //Fosc=40.960MHz
< .define FoscCLK_49 0x80; //Fosc=49.152MHz
<
< .define CPUCLK_Fosc 0x00; //CPUClk选Fosc
< .define CPUCLK_Fosc2 0x01; //CPUClk选Fosc/2
< .define CPUCLK_Fosc4 0x02; //CPUClk选Fosc/4
< .define CPUCLK_Fosc8 0x03; //CPUClk选Fosc/8
< .define CPUCLK_Fosc16 0x04; //CPUClk选Fosc/16
< .define CPUCLK_Fosc32 0x05; //CPUClk选Fosc/32
< .define CPUCLK_Fosc64 0x06; //CPUClk选Fosc/64
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
.external _F_USB_Isr
.external _F_Interrupt_Off
.external _F_Interrupt_On
00008009 .TEXT
_FIQ:
00008009 A0 D8 push R1,R4 to [sp];
0000800A A0 90 pop R1,R4 from [sp];
0000800B 98 9A reti;
_BREAK:
0000800C A0 D8 push R1,R4 to [sp];
0000800D A0 90 pop R1,R4 from [sp];
0000800E 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ0:
0000800F A0 D8 push R1,R4 to [sp];
00008010 A0 90 pop R1,R4 from [sp];
00008011 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ1:
00008012 A0 D8 push R1,R4 to [sp];
00008013 A0 90 pop R1,R4 from [sp];
00008014 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ2:
00008015 A0 D8 push R1,R4 to [sp];
00008016 A0 90 pop R1,R4 from [sp];
00008017 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ3:
00008018 A8 DA push R1,R5 to [sp]; //压栈保护
00008019 09 93 00 01 R1=0x0100;
0000801B 11 C3 10 70 test R1,[P_INT_Ctrl]; //比较是否为IRQ3_EXT1
0000801D 0F 4E jnz irq3_ext1; //是,则转至对应程序段;
0000801E 09 93 00 02 R1=0x0200;
00008020 11 C3 10 70 test R1,[P_INT_Ctrl]; //否,则比较是否为IRQ3_EXT2
00008022 05 4E jnz irq3_ext2; //是,则转至对应程序段;
irq3_key: //否,则进入键唤醒中断
00008023 09 93 80 00 R1=0x0080;
00008025 19 D3 11 70 [P_INT_Clear]=R1;
00008027 10 EE jmp ExitIrq3;
irq3_ext2:
00008028 09 93 00 02 R1=0x0200;
0000802A 19 D3 11 70 [P_INT_Clear]=R1;
0000802C 0B EE jmp ExitIrq3;
irq3_ext1:
0000802D 40 F1 int off;
0000802E 09 93 00 01 R1=0x0100;
00008030 19 D3 11 70 [P_INT_Clear]=R1;
00008032 41 92 R1=0x0001;
00008033 19 D3 12 70 [P_Watchdog_Clear]=R1;
00008035 40 F0 DB 89 call _F_USB_Isr; //调用PDIUSBD12中断处理函数
00008037 41 F1 int irq;
ExitIrq3:
00008038 A8 90 pop R1,R5 from [sp];
00008039 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ4:
0000803A A0 D8 push R1,R4 to [sp];
0000803B A0 90 pop R1,R4 from [sp];
0000803C 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ5:
0000803D A0 D8 push R1,R4 to [sp]
0000803E A0 90 pop R1,R4 from [sp]
0000803F 98 9A reti
// ---------------------------------------------------------------------------
_IRQ6:
00008040 A0 D8 push R1,R4 to [sp];
00008041 A0 90 pop R1,R4 from [sp];
00008042 98 9A reti;
// ---------------------------------------------------------------------------
_IRQ7:
00008043 A0 D8 push R1,R4 to [sp];
00008044 A0 90 pop R1,R4 from [sp];
00008045 98 9A reti;
// ---------------------------------------------------------------------------
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -