📄 fiq.lst
字号:
< .DEFINE C_IRQ4_2KHz 0x0020 // 2048Hz IRQ4
< .DEFINE C_IRQ4_4KHz 0x0040 // 4096Hz IRQ4
< .DEFINE C_IRQ3_KEY 0x0080 // Key Change IRQ3
< .DEFINE C_IRQ3_EXT1 0x0100 // Ext1 IRQ3
< .DEFINE C_IRQ3_EXT2 0x0200 // Ext2 IRQ3
< .DEFINE C_IRQ2_TMB 0x0400 // Timer B IRQ2
< .DEFINE C_FIQ_TMB 0x0800 // Timer B FIQ
< .DEFINE C_IRQ1_TMA 0x1000 // Timer A IRQ1
< .DEFINE C_FIQ_TMA 0x2000 // Timer A FIQ
< .DEFINE C_IRQ0_PWM 0x4000 // PWM IRQ0
< .DEFINE C_FIQ_PWM 0x8000 // PWM FIQ
<
< // Definitions for P_TimerA/B_Ctrl ............
< .DEFINE C_Fosc_2 0x0000 //
< .DEFINE C_Fosc_256 0x0001 //
< .DEFINE C_32768Hz 0x0002 //
< .DEFINE C_8192Hz 0x0003 //
< .DEFINE C_4096Hz 0x0004 //
< .DEFINE C_A1 0x0005 //
< .DEFINE C_A0 0x0006 //
< .DEFINE C_Ext1 0x0007 //
<
< .DEFINE C_2048Hz 0x0000 //
< .DEFINE C_1024Hz 0x0008 //
< .DEFINE C_256Hz 0x0010 //
< .DEFINE C_TMB1Hz 0x0018 //
< .DEFINE C_4Hz 0x0020 //
< .DEFINE C_2Hz 0x0028 //
< .DEFINE C_B1 0x0030 //
< .DEFINE C_Ext2 0x0038 //
<
< .DEFINE C_Off 0x0000 //
< .DEFINE C_D1 0x0040 //
< .DEFINE C_D2 0x0080 //
< .DEFINE C_D3 0x00C0 //
< .DEFINE C_D4 0x0100 //
< .DEFINE C_D5 0x0140 //
< .DEFINE C_D6 0x0180 //
< .DEFINE C_D7 0x01C0 //
< .DEFINE C_D8 0x0200 //
< .DEFINE C_D9 0x0240 //
< .DEFINE C_D10 0x0280 //
< .DEFINE C_D11 0x02C0 //
< .DEFINE C_D12 0x0300 //
< .DEFINE C_D13 0x0340 //
< .DEFINE C_D14 0x0380 //
< .DEFINE C_TA_Div_2 0x03C0 // Timer A
< .DEFINE C_TB_Div_2 0x03C0 // Timer B
<
< //... Definition for P_SystemClock ............
< .DEFINE C_Fosc 0x0000 // b3..b0
< .DEFINE C_Fosc_Div_2 0x0001 //
< .DEFINE C_Fosc_Div_4 0x0002 //
< .DEFINE C_Fosc_Div_8 0x0003 // (default)
< .DEFINE C_Fosc_Div_16 0x0004 //
< .DEFINE C_Fosc_Div_32 0x0005 //
< .DEFINE C_Fosc_Div_64 0x0006 //
< .DEFINE C_Sleep 0x0007 //
<
< .DEFINE C_32K_Work 0x0000 // b4
< .DEFINE C_32K_Off 0x0000 //
< .DEFINE C_StrongMode 0x0000 // b5
< .DEFINE C_AutoMode 0x0000 //
<
< //... Define for P_AD_Ctrl ....................
< .DEFINE C_AD 0x0001 //
< .DEFINE C_DA 0x0000 //
< .DEFINE C_MIC 0x0000 //
< .DEFINE C_LINE 0x0002 //
<
< //... 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
<
< //////////////////////////////////////////////////
< // Note: This register will map to the P_INT_Ctrl
< // (0x7010), The SACMvxx.lib use this register to
< // combine with user's interrupt setting
< //////////////////////////////////////////////////
< .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_InitQueue_A2000
< .EXTERNAL F_SP_InitQueue_S480
< .EXTERNAL F_SP_InitQueue_S240
< .EXTERNAL F_SP_InitQueue_MS01
< .EXTERNAL F_SP_InitQueue_DVR
<
< .EXTERNAL F_SP_ReadQueue
< .EXTERNAL F_SP_ReadQueue_A2000
< .EXTERNAL F_SP_ReadQueue_S480
< .EXTERNAL F_SP_ReadQueue_S240
< .EXTERNAL F_SP_ReadQueue_MS01
< .EXTERNAL F_SP_ReadQueue_DVR
<
< .EXTERNAL F_SP_WriteQueue
< .EXTERNAL F_SP_WriteQueue_A2000
< .EXTERNAL F_SP_WriteQueue_S480
< .EXTERNAL F_SP_WriteQueue_S240
< .EXTERNAL F_SP_WriteQueue_MS01
< .EXTERNAL F_SP_WriteQueue_DVR
<
< .EXTERNAL F_SP_TestQueue
< .EXTERNAL F_SP_TestQueue_A2000
< .EXTERNAL F_SP_TestQueue_S480
< .EXTERNAL F_SP_TestQueue_S240
< .EXTERNAL F_SP_TestQueue_MS01
< .EXTERNAL F_SP_TestQueue_DVR
<
< .EXTERNAL F_SP_ReadQueue_NIC // Read queue with no index change
< .EXTERNAL F_SP_ReadQueue_NIC_A2000
< .EXTERNAL F_SP_ReadQueue_NIC_S480
< .EXTERNAL F_SP_ReadQueue_NIC_S240
< .EXTERNAL F_SP_ReadQueue_NIC_MS01
< .EXTERNAL F_SP_ReadQueue_NIC_DVR
<
<
< .EXTERNAL F_SP_SACM_A2000_Init_
< .EXTERNAL F_SP_SACM_S480_Init_
< .EXTERNAL F_SP_SACM_S240_Init_
<
< .EXTERNAL F_SP_SACM_MS01_Init_
< .EXTERNAL F_SP_PlayMode0_
< .EXTERNAL F_SP_PlayMode1_
< .EXTERNAL F_SP_PlayMode2_
< .EXTERNAL F_SP_PlayMode3_
<
< .EXTERNAL F_SP_SACM_DVR_Init_
< .EXTERNAL F_SP_SACM_DVR_Rec_Init_
< .EXTERNAL F_SP_SACM_DVR_Play_Init_
<
< .EXTERNAL F_SP_GetResource
<
< //////////////////////////////////////////////////////////////////
< // Reserve old defintion
< // Note: Some user who use old library may use the old name
< //////////////////////////////////////////////////////////////////
< .EXTERNAL F_SP_Send_PWM // Get RAW data
< .EXTERNAL F_SP_Send_DAC1 //
< .EXTERNAL F_SP_Send_DAC2 //
<
< .EXTERNAL F_STD_Send_DAC1 // reserved old
< .EXTERNAL F_STD_Send_DAC2 // reserved old
<
< .EXTERNAL F_RampUpDAC1 // reserved old
< .EXTERNAL F_RampDnDAC1 // reserved old
< .EXTERNAL F_RampUpDAC2 // reserved old
< .EXTERNAL F_RampDnDAC2 // reserved old
< ///////////////////////////////////////////////////////////////////
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
0000A653 .TEXT
_FIQ:
0000A653 A0 D8 push R1,R4 to [SP]
0000A654 11 93 10 70 R1 = [P_INT_Ctrl]
0000A656 09 B3 00 20 R1 &= 0x2000
0000A658 14 5E jz ?notTimerA //当不为TIQ_TMA,则转
0000A659 11 93 7E 04 R1 = [__gIsStopRecog]
0000A65B 03 4E jnz ?BSR_NotBusy //[__gIsStopRecog]为1则转至放音处理
0000A65C 40 F0 41 80 call _BSR_FIQ_Routine //为0,调用辨识子程序
0000A65E 08 EE jmp ?BSR_Busy //返回中断
?BSR_NotBusy: //放音处理
0000A65F 12 95 F6 04 R2 = [_PlayFlag]
0000A661 03 4E jnz ?Play2000 //[_PlayFlag]为1则是播放2000
0000A662 40 F0 49 AD call F_FIQ_Service_SACM_S480; //为0,播放480
0000A664 02 EE jmp ?BSR_Busy //返回中断
?Play2000: //2000播放子程序
0000A665 40 F0 33 B3 call F_FIQ_Service_SACM_A2000;
?BSR_Busy: //返回中断
0000A667 09 93 00 20 R1 = 0x2000
0000A669 19 D3 11 70 [P_INT_Clear] = R1
0000A66B A0 90 pop R1,R4 from [SP];
0000A66C 98 9A reti;
?notTimerA:
0000A66D 09 93 00 88 R1 = 0x8800;
0000A66F 19 D3 11 70 [P_INT_Clear] = R1;
0000A671 A0 90 pop R1,R4 from [SP];
0000A672 98 9A reti;
_BREAK:
_IRQ0:
_IRQ1:
_IRQ2:
_IRQ3:
_IRQ4:
_IRQ5:
_IRQ6:
_IRQ7:
.END
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -