?? fiq.lst
字號:
< .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
< //========================================================================================
.DEFINE P_INT_CTRL 0x7010;
.DEFINE P_INT_CLEAR 0x7011;
0000047C .ram
0000047C 00 00 00 00 .var line=0,long=0,i,flag=0,led=0
00 00 00 00
00 00
.PUBLIC _F_Speed
_F_Speed:
00000481 40 F1 INT OFF
00000482 11 93 9B 04 R1 = [R_InterruptStatus] //
00000484 09 A3 10 03 R1 |= 0x0310 // Enable Timer A FIQ
00000486 19 D3 9B 04 [R_InterruptStatus] = R1
00000488 19 D3 10 70 [P_INT_CTRL] = R1;
0000048A 41 F1 INT IRQ;
0000A60E .TEXT
_FIQ:
0000A60E A0 D8 push R1,R4 to [SP]
0000A60F 11 93 10 70 R1 = [P_INT_Ctrl]
0000A611 09 B3 00 20 R1 &= 0x2000
0000A613 14 5E jz ?notTimerA //當不為TIQ_TMA,則轉
0000A614 11 93 91 04 R1 = [__gIsStopRecog]
0000A616 03 4E jnz ?BSR_NotBusy //[__gIsStopRecog]為1則轉至放音處理
0000A617 40 F0 41 80 call _BSR_FIQ_Routine //為0,調用辨識子程序
0000A619 08 EE jmp ?BSR_Busy //返回中斷
?BSR_NotBusy: //放音處理
0000A61A 12 95 09 05 R2 = [_PlayFlag]
0000A61C 03 4E jnz ?Play2000 //[_PlayFlag]為1則是播放2000
0000A61D 40 F0 B4 B5 call F_FIQ_Service_SACM_S480; //為0,播放480
0000A61F 02 EE jmp ?BSR_Busy //返回中斷
?Play2000: //2000播放子程序
0000A620 40 F0 9E BB call F_FIQ_Service_SACM_A2000;
?BSR_Busy: //返回中斷
0000A622 09 93 00 20 R1 = 0x2000
0000A624 19 D3 11 70 [P_INT_Clear] = R1
0000A626 A0 90 pop R1,R4 from [SP];
0000A627 98 9A reti;
?notTimerA:
0000A628 09 93 00 88 R1 = 0x8800;
0000A62A 19 D3 11 70 [P_INT_Clear] = R1;
0000A62C A0 90 pop R1,R4 from [SP];
0000A62D 98 9A reti;
_BREAK:
_IRQ0:
_IRQ1:
_IRQ2:
_IRQ3:
0000A62E A8 DA PUSH R1,R5 TO [SP] //壓棧保護
0000A62F 09 93 00 01 R1 = 0x0100
0000A631 11 C3 10 70 TEST R1,[P_INT_CTRL] //比較是否為IRQ3_EXT1
0000A633 18 4E JNZ L_IRQ3_Ext1 //是,則轉至對應程序段;
0000A634 09 93 00 02 R1 = 0x0200
0000A636 11 C3 10 70 TEST R1,[P_INT_CTRL] //否,則比較是否為IRQ3_EXT2
0000A638 08 4E JNZ L_IRQ3_Ext2 //是,則轉至對應程序段;
0000A639 09 93 00 02 R1 = 0x0200
L_IRQ3_Key: //否,則進入鍵喚醒中斷
0000A63B 09 93 80 00 R1 = 0x0080
0000A63D 19 D3 11 70 [P_INT_CLEAR] = R1
0000A63F A8 90 POP R1,R5 FROM [SP]
0000A640 98 9A RETI
L_IRQ3_Ext2:
0000A641 11 93 0A 05 r1=[_uiSpeed];
0000A643 41 02 r1=r1+1;
0000A644 19 D3 0A 05 [_uiSpeed]=r1;
0000A646 09 93 00 02 R1 = 0x0200
0000A648 19 D3 11 70 [P_INT_CLEAR] = R1
0000A64A A8 90 POP R1,R5 FROM [SP]
0000A64B 98 9A RETI
L_IRQ3_Ext1:
0000A64C 09 93 00 01 R1 = 0x0100
0000A64E 19 D3 11 70 [P_INT_CLEAR] = R1
0000A650 A8 90 POP R1,R5 FROM [SP]
0000A651 98 9A RETI
_IRQ4:
0000A652 A8 DA push r1,r5 to [sp];
0000A653 50 92 r1=0x0010;
0000A654 11 C3 10 70 test r1,[P_INT_Ctrl];
0000A656 0A 4E jnz l_irq4_1k;
0000A657 60 92 r1=0x0020
0000A658 11 C3 10 70 test r1,[P_INT_Ctrl];
0000A65A 04 4E jnz l_irq4_2k
l_irq4_4k:
0000A65B 09 93 40 00 R1=0x0040;
0000A65D 80 FE 7E A6 goto exit_int;
l_irq4_2k:
0000A65F 80 FE 7E A6 goto exit_int
l_irq4_1k:
0000A661 11 93 7F 04 r1=[flag]
0000A663 41 02 r1+=1
0000A664 19 D3 7F 04 [flag]=r1
0000A666 0A 95 00 04 r2=1024
0000A668 11 93 7F 04 r1=[flag]
0000A66A 02 43 cmp r1,r2
0000A66B 04 5E je good
0000A66C 50 92 r1=0x0010
0000A66D 80 FE 7E A6 goto exit_int
0000A66F 50 92 r1=0x0010
good:
0000A670 11 93 80 04 r1=[led]
0000A672 41 02 r1+=1
0000A673 19 D3 80 04 [led]=r1
0000A675 11 93 7F 04 r1=[flag]
0000A677 40 92 r1=0
0000A678 19 D3 7F 04 [flag]=r1
0000A67A 50 92 r1=0x0010
0000A67B 80 FE 7E A6 goto exit_int
0000A67D 50 92 r1=0x0010
exit_int:
0000A67E 19 D3 11 70 [P_INT_Clear]=r1;
0000A680 A8 90 pop r1,r5 from [sp];
0000A681 98 9A RETI;
_IRQ5:
_IRQ6:
_IRQ7:
.public _car_long
_car_long: .proc
0000A682 11 93 7D 04 r1=[long];
0000A684 90 9A retf;
.endp
.public _car_time
_car_time: .proc
0000A685 11 93 80 04 r1=[led]
0000A687 90 9A retf
.endp
.END
0 error(s), 0 warning(s).
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -