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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dvr.asm.bak

?? 使用GPTC6604做的一個錄放音DEMO
?? BAK
字號:
//;***************************************************************************************** 
// SACM-DVR1600 algorithm with play, stop, pause, resume, volume up, volume down function
// By Arthur Shieh
// Platform: SPCE061A,unSP IDE 1.65, Windows 2000
// Date: 	
//      2000.07.30		: Alpha release for evaluation
//      2000.07.31		:
//
// General Function call:
// void System_Initial(void);		For Hardware, Keyboard scan, see hardware.asm in detail
// void System_ServiceLoop(void);	For Keyboard scan, see key.asm in detail
//
//
// Standard Function call:
// int SP_GetCh(void);		
//	Return values of SP_GetCh() : {0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}
// 
// 
// Function call for SACM-Speed only:
// Syntax: 
//  void SACM_DVR1600_Initial()
//  	Return Value: N/A
//
//  void SACM_DVR1600_Rec(int RceMonitor,int ADC_Channel,int bit_rate)
//		RceMonitor: 
//                   1	: RceMonitorOn  (ADC+DAC output)
//                   0 	: RceMonitorOff (ADC only)
//	
//		ADC Channel: 0  : Microphone
//					 1~7: Line-in 1~7(IOA0~IOA6)
//
//		bit_rate: 0:        	BIT_RATE_10K           		
//				  1:    		BIT_RATE_12K        		
//				  2:			BIT_RATE_14K        		
//				  3:			BIT_RATE_16K        		
//				  4:			BIT_RATE_20K 		    	
//				  5:			BIT_RATE_24K        			
//
// Gptc6604  play DVR  BIT_RATE_12K ~ 20K For Samples Rate 8k
//
//  void SACM_DVR1600_Play(int Speech index, int Channel, int Ramp_Set)
//		Speech index: 
//                   -1				: Manual mode
//                   0 - max index	: Auto Mode
//	
//		Channel: 	1: DAC1 on
//					2: DAC2 on
//					3: DAC1,2 on
//		Ramp_Set:	0: Ramp Up disable/Ramp Dn disable
//					1: Ramp Up enable/Ramp Dn disable
//					2: Ramp Up disable/Ramp Dn enable
//					3: Ramp Up enable/Ramp Dn enable		
//	
//					 
// void SACM_DVR1600_Stop(void);
// 	
// void SACM_DVR1600_Pause(void);
// void SACM_DVR1600_Resume(void);
// 
// void SACM_DVR1600_Volume(int volume index);
//	volume index: {0..15}
//	
// int SACM_DVR1600_Status(void);
//	bit.0 = 0: Idle
//			1: Audio active
//	bit.1 = 0: Play Mode
//			1: Record Mode
//
//  void SACM_DVR1600_Frame_Hop_Init(void);
//  For manual mode forward-backward function, 
//  call to disable internal length count on bit stream.
//
// Note:
//   1. User would need to check out the resource.asm for resource arrangement.
//      The speech table is T_SACM_DVR1600_SpeechTable for DVR1600.
//   2. New manual mode is demonstrated, which will work with sacm_user.asm.
//      Old falshion queue manipulation manual mode is not supported in this 
//      version.
//   3. For new manual mode, user have to handle the memory address and data 
//      acquisition through F_USER_DVR1600_GetData, _USER_SetStartAddr  	
//   4. The RAM taken by library can be shared by declaring ORAM section, 
//      "OVERLAP_DVR1600_RAM_BLOCK:   .Section        .ORAM". 
//      Please check out IDE menu--> Project-->Setting--> Section for details.	 
//   5. Both forground service loop and background service loop are supported.	
//   6. Data rate of SACM-DVR1600 can be 10/12/14/16/20/24Kbps and
//			the algorithm will select it automatically.	
//   7. Please check out the sacm.asm for details of initial function, interrupt setting, 
//      and timer setting. 					  
//;*****************************************************************************************
.external F_SACM_DVR1600_Initial
.external F_SACM_DVR1600_Rec
.external F_SACM_DVR1600_Play
.external F_SACM_DVR1600_Stop
.external F_SACM_DVR1600_Volume
.external F_SACM_DVR1600_Pause
.external F_SACM_DVR1600_Resume
.external F_SACM_DVR1600_Status
.external F_SACM_DVR1600_ServiceLoop         // Service Loop for foreground
.external F_SACM_DVR1600_ServiceLoop_ISR     // Service Loop for background
.external F_ISR_Service_SACM_DVR1600_FG      // ISR service for foreground
.external F_ISR_Service_SACM_DVR1600_BG      // ISR service for background

.external F_SACM_DVR1600_Frame_Hop_Init      //  For Manual Forward-backward, 
.external F_WriterWord,F_ReadWord,F_FlashTest

.external T_SACM_DVR1600_SpeechTable,SinTab1024,FlashAddrHi
.external __RES_OUT_HASC_2_ENC_sa,F_MassErase
.define _FILE_VAR

.include var.inc
.include spt6604a.inc

.external  _InitLCD,F_Display_ASCII_Character,Character_Position
.public _FIQ,_IRQ1,_IRQ2,_IRQ3,_IRQ4,_IRQ5,_IRQ6,_IRQ7

.ram 
.var		RW_DebounceReg	
.VAR		RW_KeyBufOld;           
.VAR		RW_KeyCode;        
.VAR		RW_Flag
.var		RW_Length
.Var		RW_Address

.const  B_RecordBeginAddr  =  0x10
.public R_Resouce_BS
.public R_Resouce_DS
.var R_Resouce_BS
.var R_Resouce_DS
.const	B_Data_Rate = 3
.code
.public _main
_main:
	    R1 = 0
		R2 =0x3FC
		BP =R2
ClearSram:
		[bp--]	= R1
		test	R5,0xFFF
		jnz		ClearSram
		[bp]	= R1
		R1 =B_10M+B_FoscDivBy4
		[P_SystemClock] =R1

		R1 =B_10M // 			this EV_B Clock is 25MHz
		[P_SystemClock] =R1
	
	    R1 =B_Enable32768+B_Strong32768+B_128Hz+B_8KHz
        [P_TimeBaseSet] = R1;                   		
		r1 =	0x0000
		[P_IOA_Dir] = r1			//Set IOA as input port

		r1 =	0x00FF
		[P_IOB_Dir] = r1			//Set IOB as output ports
		[P_IOC_Dir] = r1			//Set IOC as output ports
		r1 =	0xFF00
		[P_IOA_PullR] = r1			//Enable the pull-up resistor for IOA0~IOA4

		R3 = 0xd100
		[P_Tmr_Ctrl] = R3   	// clock is 25MHz
		R4 = 0xFFFF-0xc9   	// 0x103  is 12k;  0x138 is 10k
								//0xc4 is 16k     ;0x186 is 8k  0x30d is 4k
							
				//clock 29MHz/8
				//0x1c4 8k 0x192  9k 0x16a 10k  0x149 11k  0x12e 12k
				// c9 18K
		[P_TmrA_Data] = R4
		[P_TmrA_Load] = R4
		
		R1 = B_T128HzInt
		[P_Int] = R1
		r1 =	0x55aa
		[P_Watchdog_Clr] = r1			//Reset watchdog
		Int IRQ,FIQ
		Call	F_FlashTest            //  Test Flash SPR1024
//		JMP		PlayLoop
////////////////////////////////////////////////
MainLoop:
		 R1 =    0x55AA;                        
        [P_Watchdog_Clr] = R1;
		call	F_KeyScand
		R1 = [RW_KeyCode]
		test    R1,0xFF
		JZ		MainLoop
		test	R1,0x3         // IOA0,IOA1 To Low Is Record and Play
							   // Other IOA to Low Is Auto Play Rom Data
		JNZ		?L_StartRecord
////////////////////////////////////////////////
//         keyscand and record loop
///////////////////////////////////////////////
		R1 = 0
		[RW_Flag] = R1
		R1 = 0xF00
		[P_DtmfTone] = R1
		
		R4 = 0xFFFF-0x1c4  // 0x103  is 12k;  0x138 is 10k
								//0xc4 is 16k     ;0x186 is 8k  0x30d is 4k
							
				//clock 29MHz/8   Rosc = 68K
				//0x1c4 8k 0x192  9k 0x16a 10k  0x149 11k  0x12e 12k
				// b5  a4
				
		[P_TmrA_Data] = R4
		[P_TmrA_Load] = R4
		Call	F_Play_Initial		
		r1 = 15;
		call		F_SACM_DVR1600_Volume;			// set Volume ,15 max;
		r1 = 0;
		r2 = 0;
		R3 = 5
		call		F_SACM_DVR1600_Play;
		JMP		LoopAutoSpeed
?L_StartRecord:
		R1 = 0
		[RW_Flag] = R1
		CALL	F_SACM_DVR1600_Initial;
		call	F_Record_Initial
		r1 = 1;
		r2 = 0;
		r3  =B_Data_Rate
		call		F_SACM_DVR1600_Rec;		//call A1600 start record;
MainLoop1:	
		 R1 =  0x55AA;                        
        [P_Watchdog_Clr] = R1;
        
		call    F_SACM_DVR1600_ServiceLoop;	//A1600 Service loop;
		R1 = [RW_Flag]
		test	R1,C_EndAddrFlag   // the buffer have been over
		JNZ	   StopRecordLoop
		call	F_KeyScand
		R1 = [RW_KeyCode]
		test    R1,0xFF
		JZ		MainLoop1
StopRecordLoop:
        call		F_SACM_DVR1600_Stop;
MainLoop2:	
		 R1 =    0x55AA;                        
        [P_Watchdog_Clr] = R1;
		call    F_SACM_DVR1600_ServiceLoop;	//A1600 Service loop;
		R1 = [RW_Flag]
		test	R1,C_RecEndFlag
		JZ	MainLoop2
////////////////////////////////////////////////
//         keyscand and play loop
///////////////////////////////////////////////

PlayLoop:		
		R1 = 0
		[RW_Flag] = R1
		call	F_Play_Initial
		r1 = 15;
		call		F_SACM_DVR1600_Volume;			// set Volume ,15 max;
		r1 = -1;
		r2 = 0;
		R3 = 3
		call		F_SACM_DVR1600_Play;
LoopAutoSpeed:
		r1 =	0x55aa
		[P_Watchdog_Clr] = r1						//Reset watchdog
        call    F_SACM_DVR1600_ServiceLoop;			//write data from ADC to SDARM;
		R1 = [RW_Flag]
		Test R1, C_EndAddrFlag
        JNZ		PlayLoop1
		call	F_KeyScand
		R1 = [RW_KeyCode]
		test    R1,0xFF
		JZ		LoopAutoSpeed
ExitPlayLoop:
		call	F_SACM_DVR1600_Stop
		GoTo		MainLoop
PlayLoop1:
		call	F_SACM_DVR1600_Stop
		GoTo		MainLoop
//////////////////////////////////////////////////////////	
//////////////////////////////////////////////////////////
F_Record_Initial:
	    R1 =B_Enable32768+B_Strong32768+B_128Hz+B_8KHz
        [P_TimeBaseSet] = R1;                   		
		R4 = 0xFFFF-0x1c4   // 0x103  is 12k;  0x138 is 10k
							//0xc4 is 16k     ;0x186 is 8k  0x30d is 4k
					//clock 29MHz/8  Rosc = 68K
					//0x1c4 8k 0x192  9k 0x16a 10k  0x149 11k  0x12e 12k
		[P_TmrA_Data] = R4
		[P_TmrA_Load] = R4
        CALL    F_MassErase;
		R1 = 0x00
		[P_DtmfTone] = R1
		[RW_Length] = R1   		// user length, may not use
		[FlashAddrHi] = R1
		R2 = 0x12 				//可以根據需要調節放大倍數
		[P_AgcCtrl] = R2
		r2 = 0x80
        [P_AdcCtrl] = R2;
		SR &=0x3FF
		R1 = B_RecordBeginAddr+4    //dvr 1600 length 0-3 byte
									//dvr data start for 4 byte
		[RW_Address] = R1
//		r1 = [P_Int];
//		R1| = B_TmrAInt;
//		[P_Int]=R1;
		r1 = [P_Int];
		R1| = B_Irq4;
		[P_Int]=R1;

		RETF
//////////////////////////////////////////////////////////	
//////////////////////////////////////////////////////////
F_Play_Initial:
	    R1 =B_Enable32768+B_Strong32768+B_128Hz+B_8KHz
        [P_TimeBaseSet] = R1;                   		
		R4 = 0xFFFF-0x1c4   // 0x103  is 12k;  0x138 is 10k
							//0xc4 is 16k     ;0x186 is 8k  0x30d is 4k
							//clock 29MHz/8  Rosc = 68K
							//0x1c4 8k 0x192  9k 0x16a 10k  0x149 11k  0x12e 12k
		[P_TmrA_Data] = R4
		[P_TmrA_Load] = R4
		R1 = 0xF00
		[P_DtmfTone] = R1
		SR &=0x3FF 
		R1 = B_RecordBeginAddr
		[RW_Address] = R1
		r1 = [P_Int];
		R1| = B_Irq4;
		[P_Int]=R1;
		RETF
//
//--------------------------------------------
F_KeyScand:
		PUSH	R1,R5 TO [SP]
		R1 = [RW_DebounceReg]
		JZ	L_DetectKey
		JMP	L_ExitKeyScand
L_DetectKey:
		R1 = [P_IOA_Data]
		R1 = [P_IOA_Data]
		R1 = [P_IOA_Data]
		R1 &= 0xFF
		cmp	R1,0xFF
		jne	L_KeyPressIn
		JMP	L_ExitKeyScand
L_KeyPressIn:
		R2 = [RW_KeyBufOld]
		JNZ		L_AfterDebounceReg
		[RW_KeyBufOld] = R1
		R1 =15
		[RW_DebounceReg] = R1
		JMP		L_ExitKeyScand
L_AfterDebounceReg:
		R3 =50
		[RW_DebounceReg] = R3
		R3 = 0
		[RW_KeyBufOld] =R3
		R3 =R1 XOR 0xFF
		CMP R1,R2
		JE		L_HaveKeyScand
L_ExitKeyScand:
		R3 = 0
L_HaveKeyScand:
		[RW_KeyCode]=R3
		POP	R1,R5 FROM [SP]
		RETF	
// ==========================================
.text	
_FIQ:
_IRQ1:
_IRQ3:
_IRQ5:
_IRQ7:
		PUSH	R1,R5 TO [SP]
		R1 = 0xFFFF
		[P_IntClr] = R1
		POP	R1,R5 FROM [SP]
		RETI
_IRQ2:
		PUSH	R1,R5 TO [SP]
		R1 = B_Irq2
		[P_IntClr] = R1
		R1 = [P_IOB_Data]
		R1 ^=0x0F
		[P_IOB_Data] = R1
		POP	R1,R5 FROM [SP]
		RETI
_IRQ4:
		PUSH	R1,R5 TO [SP]
		R1 = B_Irq4
		[P_IntClr] = R1
    	call F_ISR_Service_SACM_DVR1600_FG;  // use 8k samples
		POP	R1,R5 FROM [SP]
		RETI
_IRQ6:
		PUSH	R1,R5 TO [SP]
		R1 = B_Irq6
		[P_IntClr] = R1
		R1 = [RW_DebounceReg]
		JZ	L_ExitDec
		R1-=1
		[RW_DebounceReg] = R1
L_ExitDec:
		POP	R1,R5 FROM [SP]
		RETI		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩高清一区| 午夜精品一区二区三区免费视频 | 夜夜揉揉日日人人青青一国产精品| 久久久777精品电影网影网| 亚洲精品在线观看网站| 欧美一区二区美女| 日韩美女在线视频| 久久久高清一区二区三区| 国产亚洲欧美日韩在线一区| 一区二区在线电影| 五月婷婷另类国产| 99re66热这里只有精品3直播 | 国产视频视频一区| 蜜桃av噜噜一区| 成人一级片网址| 欧洲国内综合视频| 日韩精品中文字幕在线一区| 夜夜爽夜夜爽精品视频| www.av精品| 制服丝袜中文字幕亚洲| 精品国产1区2区3区| 午夜精彩视频在线观看不卡| 91色婷婷久久久久合中文| 91豆麻精品91久久久久久| 在线不卡的av| 国产蜜臀av在线一区二区三区| 亚洲乱码日产精品bd| 成人a区在线观看| 8x8x8国产精品| 亚洲成人免费看| 国产乱色国产精品免费视频| 日本久久电影网| 国产精品白丝在线| 精品制服美女丁香| 日本精品裸体写真集在线观看| 欧美高清在线一区二区| 青青青爽久久午夜综合久久午夜| 成人免费看片app下载| 国产欧美视频一区二区| 成人精品视频一区二区三区尤物| 国产精品嫩草99a| 另类欧美日韩国产在线| 欧美色图第一页| 国产欧美一区二区精品久导航| 国产剧情av麻豆香蕉精品| 国产色综合久久| 99re6这里只有精品视频在线观看| 一区二区三区在线高清| 欧美日韩久久久| 韩国理伦片一区二区三区在线播放 | 亚洲国产一区二区三区青草影视| 国精产品一区一区三区mba桃花 | 国产精品自拍毛片| 欧美激情在线一区二区| 成人91在线观看| 亚洲午夜久久久久久久久电影网| 欧美高清视频一二三区| 老司机精品视频线观看86| 国产精品免费视频观看| 91福利精品第一导航| 奇米影视一区二区三区小说| 国产欧美一区二区精品性色| 91啪亚洲精品| 美女mm1313爽爽久久久蜜臀| 国产精品拍天天在线| 欧美私人免费视频| 亚洲精品免费在线观看| 777午夜精品视频在线播放| 国产传媒欧美日韩成人| 久久久国际精品| 色哟哟一区二区在线观看 | 久久久久久麻豆| 91视频在线看| 美日韩黄色大片| 中文字幕亚洲区| 不卡视频在线观看| 男女性色大片免费观看一区二区| 国产精品欧美经典| 欧美一级高清大全免费观看| 久久精品国产精品青草| 中文字幕一区二区三区乱码在线| 欧美一区二区在线免费播放| 成人av电影观看| 免费观看在线色综合| 一区二区三区视频在线看| 2017欧美狠狠色| 成人免费看片app下载| 麻豆专区一区二区三区四区五区| 国产精品国产自产拍高清av | 欧美日韩日日摸| 99久久久久免费精品国产| 久久国产日韩欧美精品| 亚洲h在线观看| 中文字幕一区二区三区在线不卡 | 日韩你懂的在线观看| 欧美丝袜丝交足nylons| 不卡视频在线观看| 国产精品 日产精品 欧美精品| 日韩精品91亚洲二区在线观看| 日韩欧美三级在线| 这里只有精品视频在线观看| 91丨porny丨国产| av中文一区二区三区| 国产精品一区二区久激情瑜伽| 美女看a上一区| 日本sm残虐另类| 五月婷婷另类国产| 视频在线观看一区| 亚洲国产成人tv| 一区av在线播放| 亚洲一区在线播放| 久久色在线视频| 2020国产成人综合网| 26uuu国产一区二区三区| 日韩三级电影网址| 精品久久久久久久久久久久久久久久久 | 99亚偷拍自图区亚洲| a4yy欧美一区二区三区| www.av精品| 在线免费观看成人短视频| 一本色道久久综合亚洲91| 日本高清成人免费播放| 在线视频中文字幕一区二区| 欧美网站大全在线观看| 91精品国产入口| 欧美变态凌虐bdsm| 久久婷婷综合激情| 亚洲欧洲在线观看av| 亚洲另类在线视频| 亚洲国产精品久久久久婷婷884| 午夜成人在线视频| 毛片不卡一区二区| 风流少妇一区二区| 久久国产乱子精品免费女| 韩国理伦片一区二区三区在线播放| 国内一区二区视频| 波多野结衣欧美| 在线观看www91| 日韩欧美一级在线播放| 国产精品天美传媒| 一区二区三区加勒比av| 免费av成人在线| 成人午夜伦理影院| 欧美美女黄视频| 精品国产伦一区二区三区免费 | 99久久久久免费精品国产| 欧美亚洲一区二区在线观看| 日韩亚洲欧美中文三级| 国产欧美精品在线观看| 亚洲va韩国va欧美va| 岛国一区二区三区| 欧美日韩一区二区三区在线| 精品国内片67194| 日韩久久一区二区| 最好看的中文字幕久久| 视频在线观看91| 成人美女视频在线看| 欧美日韩你懂得| 国产精品久久影院| 免费黄网站欧美| 色婷婷av一区二区三区大白胸 | 国内久久婷婷综合| 日本久久精品电影| 日本一区二区视频在线| 亚洲丰满少妇videoshd| 成人激情视频网站| 精品嫩草影院久久| 婷婷中文字幕综合| 波多野结衣中文一区| 日韩欧美色电影| 天天综合网 天天综合色| 成人在线视频一区| 欧美mv和日韩mv的网站| 亚洲精品一二三四区| 国产成人精品免费看| 日韩精品在线网站| 亚欧色一区w666天堂| 色综合亚洲欧洲| 欧美嫩在线观看| 亚洲日本一区二区三区| 国产不卡视频在线播放| 日韩情涩欧美日韩视频| 日韩中文字幕不卡| 欧美日韩亚洲丝袜制服| 亚洲欧美日韩久久| 青青草原综合久久大伊人精品优势 | 欧美精品在线观看播放| 亚洲一区二区在线免费观看视频| 豆国产96在线|亚洲| 久久午夜电影网| 久久99久久久久| 欧美一级搡bbbb搡bbbb| 午夜精彩视频在线观看不卡| 欧美日韩综合不卡| 亚洲精品中文字幕乱码三区| 91美女在线观看| 亚洲伦在线观看| 色噜噜久久综合| 亚洲影视在线观看| 欧美日韩成人激情|