亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usefunction.asm

?? 使用GPTC6604做的一個(gè)錄放音DEMO
?? ASM
字號:
.public F_USER_DVR1600_EndRecord
.public F_USER_DVR1600_GetData,F_USER_DVR1600_WriteData

.public F_SACM_DVR1600_GetADC
.public F_SACM_DVR1600_SendDAC1
.public F_SACM_DVR1600_SendDAC2
.public F_SACM_DVR1600_EndPlay
//.public F_SACM_DVR1600_ISR_On
//.public F_SACM_DVR1600_ISR_Off
.PUBLIC F_SP_SwitchChannel

.public F_SACM_RampUpDAC1
.public F_SACM_RampDnDAC1
.public F_SACM_RampUpDAC2
.public F_SACM_RampDnDAC2

.public F_SP_SACM_DVR1600_DAC_Timer_Init
.public F_SP_SACM_DVR1600_ADC_Timer_Init
.external R_Resouce_DS,FlashAddrHi,F_ReadFmFlash,F_StopFlash,F_ReadFlashBuf
.external F_WriteOneByte,F_ReadOneByte,F_FlashTest,FlashAddr,FlashData
.external SW_Buff


.include var.inc
.include spt6604a.inc
.ram
.public R_ADC_Channel;
.var    R_ADC_Channel = 0;


.const	RW_Bank1	= 0x400
//======================
.code
////////////////////////////////////////////////////////
// Function: _SP_SACM_DAC_Timer_Init_
// Description: Select A1600_Play DAC Sampling Rate, 
//              called by library
//              
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////
F_SP_SACM_DVR1600_DAC_Timer_Init:
    push r1 to [sp];
    
//    R1 = C_DVR1600_DAC_Timer_Setting;  	
//	[P_TimerA_Data] = R1;
	
	pop r1 from [sp];
	retf;

////////////////////////////////////////////////////////
// Function: _SP_SACM_ADC_Timer_Init_
// Description: Select A1600_Rec ADC Sampling Rate
//              called by library
//              
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////

F_SP_SACM_DVR1600_ADC_Timer_Init:
    push r1 to [sp];
 
//    R1 = C_DVR1600_ADC_Timer_Setting;  	
//	[P_TimerA_Data] = R1;
	
	pop r1 from [sp];
	retf;

//---------------------------------------------------------------
//Function : F_SP_SwitchChannel
//Description: This function switches the A/D channel based on 
//             the parameter. 
//Used register: r1
//Return: none
//---------------------------------------------------------------
F_SP_SwitchChannel: .proc
   	push BP to [SP];
//   	BP = SP + 1;
 //  	R1 = [BP + 3]; //RceMonitorOff
    	
	pop BP from [SP];
retf
.ENDP
	

////////////////////////////////////////////////////////
// Function: F_SACM_DVR1600_EndPlay
// Description: call back from kernel when bit stream 
//              decoding is done 
//              
// Syntax  : F_SACM_DVR1600_EndPlay
// Destory: R1
// Parameter : None
// Return    : N/A
////////////////////////////////////////////////////////
F_SACM_DVR1600_EndPlay: .PROC
		push R1 to [SP]; 
    	// implemented by designer and SA
    	// User can also handle concatenation , Ramp down ant etc.
    	nop
    	nop
    	pop R1 from [SP]; 
    	retf; 
.ENDP

//--------------------------------------------------------------------
//-- Function: F_SACM_DVR1600_GetADC
//-- Parameter: N/A   
//-- Return: R1 = ADC data
//-- Description: This function called by library to get  
//                ADC data for recording. It can be from either Microphone
//                or line-in.
//                User would have to modified the function body 
//                based on the need to fulfill this request from 
//                library. 
//                User should store the value in register(R2-R5)if use them. 
//--------------------------------------------------------------------
// ffc0
// 0ffc
F_SACM_DVR1600_GetADC: .PROC
		R1=[P_Adc];	
		nop
        retf
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_DVR1600_SendDAC1
// Description: send data to DAC1 from library 
//              
// Syntax  : F_SACM_DVR1600_SendDAC
// Destory: R4   (Suggest to be R1 by Arthur) 
// Parameter : R4: 16-bit unsign PCM
// Return    :None
////////////////////////////////////////////////////////
F_SACM_DVR1600_SendDAC1: .PROC
F_SACM_DVR1600_SendDAC2:
   	[P_Ch0Envelope] = R4
    	nop;
    	retf; 
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_RampDnDAC1
// Description: Ramp down after using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : F_SACM_RampDnDAC1
// Destory: R1
////////////////////////////////////////////////////////
F_SACM_RampUpDAC1: .PROC
F_SACM_RampUpDAC2:
		push R1 to [SP]; 
    	R1 = [P_Ch0Envelope]; 
    	R1 &= 0xff00; 
    	jz ?_Branch_0; 
    
?_Loop_0:  
    	call F_SACM_Delay;
    	R1 -= 0x0100; 
    	[P_Ch0Envelope] = R1;   
    	jnz ?_Loop_0; 
    
?_Branch_0:       
    	pop R1 from [SP]; 
    	retf; 
.ENDP

////////////////////////////////////////////////////////
// Function: F_SACM_RampUpDAC
// Description: Ramp Up before using DAC to avoid "bow" sound
//              from speaker 
// Syntax  : F_SACM_RampUpDAC1()
// Destory: R1
////////////////////////////////////////////////////////
F_SACM_RampDnDAC2: .PROC
F_SACM_RampDnDAC1:
		push R1 to [SP]; 
  		R1 = [P_Ch0Envelope]; 
    	R1 &= 0xff00; 
    	cmp R1, 0x8000;
    	jb ?_Loop_0;
       
    	je ?_Branch_0; 
				                
?_Loop_1:
    	call F_SACM_Delay;
    	R1 -= 0x0100; 
    	[P_Ch0Envelope] = R1; 
    	cmp R1, 0x8000; 
    	jne ?_Loop_1; 
      
    	jmp ?_Branch_0; 

?_Loop_0:
		call F_SACM_Delay; 
    	R1 += 0x0100; 
    	[P_Ch0Envelope] = R1; 
    	cmp R1, 0x8000; 
    	jne ?_Loop_0; 
    
?_Branch_0:
   		pop R1 from [SP]; 
.ENDP
		RETF
F_SACM_Delay:
		push R1 TO [SP]
		R1 = 0x7F
?loop:
		R1 -=1
		JNZ  ?loop
		pop	R1 From [sp]
		RETF
//======================
//
//======================
F_USER_DVR1600_WriteData:
//	input Parameter:
//              Buffer Start Adr:R1; Buffer Length:R2 
//	retf;
	    Bp = [RW_Address]
L_LoopSaveData:
        R3 =  [R1++]
        [FlashAddr] = bp
		[FlashData] = R3
        Call	F_WriteOneByte   //1
		R3 = R3 LSR	4
		R3 = R3 LSR	4
		bp+=1
		JNZ		?L_NotOver
		R4 = 1
		[FlashAddrHi] = R4
?L_NotOver:
        [FlashAddr] = bp
		[FlashData] = R3
        Call	F_WriteOneByte     //2
		bp+=1
		JNZ		?L_NotOver1
		R4 = 1
		[FlashAddrHi] = R4
?L_NotOver1:
		R4 = [RW_Length]
		R4 +=1
		[RW_Length] = R4
        R2 -=1
        jnz	L_LoopSaveData
        [RW_Address] = bp
		RETF
//============================
//  Input Parameter
//   R1:Length Low
//   R2:Length High
//      save two word 4 byte
F_USER_DVR1600_EndRecord: 
		R3 = 0
		[FlashAddrHi] = R3
	    R4 = 0x10  
        [FlashAddr] = R4
		[FlashData] = R1
        Call	F_WriteOneByte	//1
		R1 = R1 LSR	4
		R1 = R1 LSR	4
		R4+=1
        [FlashAddr] = R4
		[FlashData] = R1
        Call	F_WriteOneByte	//2
		R4+=1
        [FlashAddr] = R4
		[FlashData] = R2
        Call	F_WriteOneByte	//3
		R2 = R2 LSR	4
		R2 = R2 LSR	4
		R4+=1
        [FlashAddr] = R4
		[FlashData] = R2
        Call	F_WriteOneByte	//4
        nop
		R1 = C_RecEndFlag
		[RW_Flag] = R1
		RETF

//======================

//======================
F_USER_DVR1600_GetData:
//	input Parameter:
//          Buffer Start Adr:R1; Buffer Length:R2 
//  Get Data Length
	    R4 = [RW_Address]
	    [FlashAddr] = R4
	    Call	F_ReadFmFlash
L_LoopGetData:
        CALL    F_ReadOneByte;
        R3 = R5;
        R4 +=1
		JNZ		?L_NotOver
		R5 = 1
		[FlashAddrHi] = R5
?L_NotOver:
        CALL    F_ReadOneByte;
        R5 = R5 LSL 4;
        R5 = R5 LSL 4;
        R3 |=R5
        [R1++] =R3
        R4 +=1
		JNZ		?L_NotOver1
		R5 = 1
		[FlashAddrHi] = R5
?L_NotOver1:
		R5 = [RW_Length]
		R5 -=1
		JZ		exit
		[RW_Length] = R5
        R2 -=1
        JNZ	L_LoopGetData
L_ExitLoopGetData:
        [RW_Address] = R4
        CALL    F_StopFlash;
        RETF
exit:
		R1 = C_EndAddrFlag
		[RW_Flag] = R1
        CALL    F_StopFlash;
		RETF

////////////////////////////////////////////////////////
.external R_Resouce_BS
.public	F_GetInternalROMData;
F_GetInternalROMData:
   	push R1, R3 to [SP];  // add by adamcar 
	SR &= 0x3FF
	r3 = [R_Resouce_BS]
	R4 =[R3++];
	cmp R3, 0;
	jnz ?L_End;
	SR &= 0x3FF
	[R_Resouce_DS] = SR;

?L_End:
	[R_Resouce_BS] = R3; 
	 
	pop R1, R3 from [SP];
	//-----------------------
	// end of user define area
    //-----------------------
	retf;

// Function: F_SP_SACM_DVR1600_Init_
// Description: Hardware initilazation, System Clock, DAC, INT
//              
// Syntax  : F_SP_SACM_Init_
// Destory: R1
// Parameter : None
// Return    : None
////////////////////////////////////////////////////////
// call by decode.asm to initilaize the hardware for decode  // by Arthur
.public F_SP_SACM_DVR1600_Init_
F_SP_SACM_DVR1600_Init_:
		FIQ on;
		IRQ on;
		retf
			

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久蜜臀图片| 男女男精品视频| 国产精品系列在线播放| 欧美一级黄色录像| 奇米精品一区二区三区四区| 欧美午夜寂寞影院| 亚洲老妇xxxxxx| 色婷婷av一区二区三区之一色屋| 亚洲精品成人悠悠色影视| 91女厕偷拍女厕偷拍高清| 欧美zozozo| 九色综合狠狠综合久久| 日韩一区二区免费视频| 琪琪久久久久日韩精品| 精品奇米国产一区二区三区| 麻豆一区二区在线| 久久久久久电影| 成人综合婷婷国产精品久久 | 一区视频在线播放| 91小宝寻花一区二区三区| 亚洲视频狠狠干| 91视频.com| 亚洲色图第一区| 色婷婷精品久久二区二区蜜臀av| 亚洲一二三区视频在线观看| 欧美日韩一区 二区 三区 久久精品| 亚洲第一主播视频| 欧美一区二区性放荡片| 精品一区二区三区在线观看| 久久久精品中文字幕麻豆发布| 国内久久精品视频| 亚洲图片激情小说| 欧美丰满一区二区免费视频 | 91麻豆精品国产自产在线| 日韩精品视频网| 精品剧情在线观看| 不卡高清视频专区| 亚洲www啪成人一区二区麻豆 | 国产精品一区二区在线观看不卡 | 91精选在线观看| 国产一区二区三区久久久| 国产午夜亚洲精品午夜鲁丝片| 成人精品小蝌蚪| 亚洲成人av中文| 2021中文字幕一区亚洲| 色综合色综合色综合| 午夜电影一区二区| 国产视频不卡一区| 色偷偷成人一区二区三区91| 一区二区三区影院| 久久伊人中文字幕| 欧美吻胸吃奶大尺度电影| 国产原创一区二区| 午夜免费欧美电影| 中文字幕亚洲区| 日韩欧美国产一区二区三区| 9人人澡人人爽人人精品| 日韩精品一二区| 中文字幕第一区第二区| 日韩一级片网址| 欧美在线综合视频| 成人动漫在线一区| 激情都市一区二区| 亚州成人在线电影| 亚洲美女屁股眼交| 国产拍欧美日韩视频二区| 91精品国产综合久久福利| 一本久久a久久免费精品不卡| 日产国产欧美视频一区精品| 亚洲免费观看在线视频| 国产日韩欧美高清在线| 欧美成人综合网站| 欧美少妇一区二区| 91在线视频免费观看| 国产河南妇女毛片精品久久久 | 亚洲免费观看视频| 国产欧美一区二区在线| 欧美日韩在线播放三区四区| 波多野结衣的一区二区三区| 国产在线精品一区二区三区不卡| 男女男精品视频网| 免费人成精品欧美精品| 午夜精品影院在线观看| 亚洲地区一二三色| 亚洲一区精品在线| 亚洲精品中文字幕在线观看| 国产精品传媒视频| 亚洲欧洲韩国日本视频| 日韩一区二区三区观看| 日韩一级二级三级| 91精品国产一区二区| 欧美精品电影在线播放| 91精品国产手机| 日韩免费观看高清完整版| 欧美一区二区三区色| 4438x亚洲最大成人网| 欧美日韩一区二区电影| 91亚洲精品一区二区乱码| av在线不卡免费看| 91精品1区2区| 欧美日韩国产色站一区二区三区| 91香蕉国产在线观看软件| 色综合久久综合网欧美综合网| 色偷偷一区二区三区| 欧美日本一区二区在线观看| 欧美一区二区精品在线| 日韩欧美在线综合网| 亚洲与欧洲av电影| 亚洲成人免费电影| 毛片不卡一区二区| 成人免费毛片片v| av在线播放不卡| 日本高清成人免费播放| 在线不卡欧美精品一区二区三区| 日韩三区在线观看| 国产色产综合产在线视频| 国产精品久久精品日日| 中文字幕亚洲区| 五月天久久比比资源色| 韩国毛片一区二区三区| 成人app网站| 欧美日韩你懂得| 久久久久九九视频| 亚洲在线视频网站| 精油按摩中文字幕久久| 白白色 亚洲乱淫| 51精品视频一区二区三区| 国产亚洲综合色| 亚洲一区二区视频在线观看| 精品在线亚洲视频| 91尤物视频在线观看| 欧美一区二区三区系列电影| 欧美v国产在线一区二区三区| 亚洲国产成人午夜在线一区| 亚洲福利电影网| 国模套图日韩精品一区二区| 91在线免费视频观看| 久久婷婷一区二区三区| 亚洲第四色夜色| 91论坛在线播放| 国产欧美一区二区精品久导航| 丝袜诱惑制服诱惑色一区在线观看| 99久久综合精品| 国产欧美日本一区视频| 极品少妇xxxx精品少妇| 欧美日韩国产高清一区二区| 亚洲免费高清视频在线| 风间由美性色一区二区三区| 精品动漫一区二区三区在线观看| 午夜影院久久久| 91黄色免费看| 亚洲美女少妇撒尿| 91香蕉国产在线观看软件| 中文字幕一区av| 成人免费视频一区| 中文字幕电影一区| 成人性生交大片免费| 国产亚洲欧洲一区高清在线观看| 精品在线一区二区| 26uuu亚洲| 九一九一国产精品| 日韩精品一区二| 老司机一区二区| 日韩久久免费av| 麻豆一区二区三区| 精品国产精品网麻豆系列| 老司机精品视频在线| 日韩欧美123| 经典三级一区二区| 国产日韩综合av| 成人高清免费在线播放| 亚洲欧美一区二区三区极速播放| 99国产精品视频免费观看| 国产精品第一页第二页第三页| 97国产一区二区| 亚洲第一狼人社区| 日韩精品一区二区三区在线播放| 久久97超碰国产精品超碰| 国产无一区二区| www.综合网.com| 亚洲乱码日产精品bd| 欧美日韩成人高清| 蜜桃久久久久久久| 国产日韩欧美综合在线| 成人激情小说乱人伦| 亚洲欧美国产毛片在线| 欧美在线观看视频一区二区三区 | 亚洲免费在线播放| 亚洲天堂2016| 国产欧美一区二区精品久导航 | 精品国产成人系列| 国产精一区二区三区| 国产精品美女久久久久久久久久久 | 国产真实乱子伦精品视频| 久久一二三国产| 91啪亚洲精品| 日韩精品成人一区二区三区| 国产精品自在在线| 91香蕉国产在线观看软件| 国产精品综合av一区二区国产馆|