📄 setinterruptstatus.lst
字号:
< .DEFINE C_ADC_EN 0x0001 // P_ADC_Ctrl
< .DEFINE C_ADC_DIS 0x0000 // P_ADC_Ctrl
< .DEFINE C_MIC_RDY 0x8000 // P_ADC_Ctrl
< .DEFINE C_MIC_EN 0x0000 // P_ADC_Ctrl
< .DEFINE C_MIC_DIS 0x0002 // P_ADC_Ctrl
< .DEFINE C_MIC_AGC_EN 0x0000 // P_ADC_Ctrl
< .DEFINE C_MIC_AGC_DIS 0x0000 // P_ADC_Ctrl
< .DEFINE C_VEXTREF_EN 0x0080 // P_ADC_Ctrl
< .DEFINE C_VEXTREF_DIS 0x0000 // P_ADC_Ctrl
< .DEFINE C_2V_EN 0x0100 // P_ADC_Ctrl
< .DEFINE C_2V_DIS 0x0000 // P_ADC_Ctrl
< .DEFINE C_DAC_3mA 0x0040 // P_ADC_Ctrl
< .DEFINE C_DAC_2mA 0x0000 // P_ADC_Ctrl
<
< .DEFINE C_ADC_MUX_MIC 0x0000 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA0 0x0001 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA1 0x0002 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA2 0x0003 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA3 0x0004 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA4 0x0005 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA5 0x0006 // P_ADC_MUX_Ctrl
< .DEFINE C_ADC_MUX_IOA6 0x0007 // P_ADC_MUX_Ctrl
< .DEFINE C_LINEIN_FAIL 0x4000 // P_ADC_MUX_Ctrl
< .DEFINE C_LINEIN_RDY 0x8000 // P_ADC_MUX_Ctrl
<
< .DEFINE C_DAC1_DIRECT 0x0000 // P_DAC_Ctrl
< .DEFINE C_DAC1_LATCH_A 0x0080 // P_DAC_Ctrl
< .DEFINE C_DAC1_LATCH_B 0x0100 // P_DAC_Ctrl
< .DEFINE C_DAC1_LATCH_AB 0x0180 // P_DAC_Ctrl
< .DEFINE C_DAC2_DIRECT 0x0000 // P_DAC_Ctrl
< .DEFINE C_DAC2_LATCH_A 0x0020 // P_DAC_Ctrl
< .DEFINE C_DAC2_LATCH_B 0x0040 // P_DAC_Ctrl
< .DEFINE C_DAC2_LATCH_AB 0x0060 // P_DAC_Ctrl
< .DEFINE C_MIC_DIRECT 0x0000 // P_DAC_Ctrl
< .DEFINE C_MIC_LATCH_A 0x0008 // P_DAC_Ctrl
< .DEFINE C_MIC_LATCH_B 0x0010 // P_DAC_Ctrl
< .DEFINE C_MIC_LATCH_AB 0x0018 // P_DAC_Ctrl
< .DEFINE C_DAC_DIS 0x0002 // P_DAC_Ctrl
<
< // Constants for SIO
< .DEFINE C_SIO_CONFIG 0x0080 // P_SIO_Ctrl
< .DEFINE C_SIO_READ 0x0000 // P_SIO_Ctrl
< .DEFINE C_SIO_WRITE 0x0040 // P_SIO_Ctrl
< .DEFINE C_SIO_CLOCK_32 0x0018 // P_SIO_Ctrl
< .DEFINE C_SIO_CLOCK_16 0x0000 // P_SIO_Ctrl
< .DEFINE C_SIO_CLOCK_8 0x0010 // P_SIO_Ctrl
< .DEFINE C_SIO_ADDR_24 0x0003 // P_SIO_Ctrl
< .DEFINE C_SIO_ADDR_16 0x0000 // P_SIO_Ctrl
< .DEFINE C_SIO_ADDR_8 0x0002 // P_SIO_Ctrl
< .DEFINE C_SIO_ADDR_NO 0x0001 // P_SIO_Ctrl
<
< .DEFINE C_SIO_BUSY 0x0080 // P_SIO_Start
<
< // Constants for UART
< .DEFINE C_UART_RX_INT 0x0080 // P_UART_Command1
< .DEFINE C_UART_TX_INT 0x0040 // P_UART_Command1
< .DEFINE C_UART_RESET 0x0020 // P_UART_Command1
< .DEFINE C_UART_PARITY_EVEN 0x0008 // P_UART_Command1
< .DEFINE C_UART_PARITY_ODD 0x0000 // P_UART_Command1
< .DEFINE C_UART_PARITY_EN 0x0004 // P_UART_Command1
< .DEFINE C_UART_PARITY_DIS 0x0000 // P_UART_Command1
<
< .DEFINE C_UART_RX_RDY 0x0080 // P_UART_Command2
< .DEFINE C_UART_TX_RDY 0x0040 // P_UART_Command2
< .DEFINE C_UART_RX_EN 0x0080 // P_UART_Command2
< .DEFINE C_UART_TX_EN 0x0040 // P_UART_Command2
< .DEFINE C_UART_PE 0x0008 // P_UART_Command2
< .DEFINE C_UART_OE 0x0010 // P_UART_Command2
< .DEFINE C_UART_FE 0x0020 // P_UART_Command2
<
< // Constants for Feedback
< .DEFINE C_FEEDBACK1_EN 0x0004 // P_Feedback
< .DEFINE C_FEEDBACK2_EN 0x0008 // P_Feedback
< .DEFINE C_IRTX_EN 0x0001 // P_Feedback
<
< // Constants for LVD
< .DEFINE C_LVD33V 0x0002 // P_LVD_Ctrl
< .DEFINE C_LVD29V 0x0001 // P_LVD_Ctrl
<
< // Other Constants
< .DEFINE C_WDTCLR 0x0001 // P_Watchdog_Clear
<
< ///////////////////////////////////////////////////////////////////
< // Old definitions for LVD @'hardware.inc'
< .DEFINE C_LVD24V 0x0000 // P_LVD_Ctrl
< .DEFINE C_LVD28V 0x0001 // P_LVD_Ctrl
< .DEFINE C_LVD32V 0x0002 // P_LVD_Ctrl
< .DEFINE C_LVD36V 0x0003 // P_LVD_Ctrl
<
< // Old definitions for TimerA & TimerB @'hardware.inc'
< .DEFINE C_Fosc_2 0x0000 // P_TimerA_Ctrl
< .DEFINE C_Fosc_256 0x0001 // P_TimerA_Ctrl
< .DEFINE C_32768Hz 0x0002 // P_TimerA_Ctrl
< .DEFINE C_8192Hz 0x0003 // P_TimerA_Ctrl
< .DEFINE C_4096Hz 0x0004 // P_TimerA_Ctrl
< .DEFINE C_A1 0x0005 // P_TimerA_Ctrl
< .DEFINE C_A0 0x0006 // P_TimerA_Ctrl
< .DEFINE C_Ext1 0x0007 // P_TimerA_Ctrl
<
< .DEFINE C_2048Hz 0x0000 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_1024Hz 0x0008 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_256Hz 0x0010 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_TMB1Hz 0x0018 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_4Hz 0x0020 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_2Hz 0x0028 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_B1 0x0030 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_Ext2 0x0038 // P_TimerA_Ctrl, P_TimerB_Ctrl
<
< .DEFINE C_Off 0x0000 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D1 0x0040 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D2 0x0080 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D3 0x00C0 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D4 0x0100 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D5 0x0140 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D6 0x0180 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D7 0x01C0 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D8 0x0200 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D9 0x0240 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D10 0x0280 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D11 0x02C0 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D12 0x0300 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D13 0x0340 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_D14 0x0380 // P_TimerA_Ctrl, P_TimerB_Ctrl
< .DEFINE C_TA_Div_2 0x03C0 // P_TimerA_Ctrl
< .DEFINE C_TB_Div_2 0x03C0 // P_TimerB_Ctrl
<
< // bit definitions
<
< .define C_Bit0 0x0001
< .define C_Bit1 0x0002
< .define C_Bit2 0x0004
< .define C_Bit3 0x0008
< .define C_Bit4 0x0010
< .define C_Bit5 0x0020
< .define C_Bit6 0x0040
< .define C_Bit7 0x0080
< .define C_Bit8 0x0100
< .define C_Bit9 0x0200
< .define C_Bit10 0x0400
< .define C_Bit11 0x0800
< .define C_Bit12 0x1000
< .define C_Bit13 0x2000
< .define C_Bit14 0x4000
< .define C_Bit15 0x8000
<
< //========================================================================================
< // End of SPCE061A.inc
< //========================================================================================
0000C0D4 .code
.external R_InterruptStatus
.public _SetINTStatus
.public _ClearINTStatus
//=============================================================
// 语法格式: void SetINTStatus(unsigned int)
// 实现功能: 设置开放中断标志
// 参数: unsigned int - 需要开放的中断标志
// 返回值: 无
//=============================================================
_SetINTStatus:
0000C0D4 88 D2 push r1 to [sp]
0000C0D5 08 03 04 00 r1 = sp + 4
0000C0D7 C1 92 r1 = [r1]
0000C0D8 11 A3 10 02 r1 |= [R_InterruptStatus]
0000C0DA 19 D3 10 02 [R_InterruptStatus] = r1
0000C0DC 08 03 04 00 r1 = sp + 4
0000C0DE C1 92 r1 = [r1]
0000C0DF 11 A3 2D 70 r1 |= [P_INT_Ctrl_New]
0000C0E1 19 D3 2D 70 [P_INT_Ctrl_New] = r1
0000C0E3 88 90 pop r1 from [sp]
0000C0E4 90 9A retf
//=============================================================
// 语法格式: void ClearINTStatus(unsigned int)
// 实现功能: 设置关闭中断标志
// 参数: unsigned int - 需要关闭的中断标志
// 返回值: 无
//=============================================================
_ClearINTStatus:
0000C0E5 88 D2 push r1 to [sp]
0000C0E6 08 03 04 00 r1 = sp + 4
0000C0E8 C1 92 r1 = [r1]
0000C0E9 09 83 FF FF r1 ^= 0xffff
0000C0EB 11 B3 10 02 r1 &= [R_InterruptStatus]
0000C0ED 19 D3 10 02 [R_InterruptStatus] = r1
0000C0EF 08 03 04 00 r1 = sp + 4
0000C0F1 C1 92 r1 = [r1]
0000C0F2 09 83 FF FF r1 ^= 0xffff
0000C0F4 11 B3 2D 70 r1 &= [P_INT_Ctrl_New]
0000C0F6 19 D3 2D 70 [P_INT_Ctrl_New] = r1
0000C0F8 88 90 pop r1 from [sp]
0000C0F9 90 9A retf
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -