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

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

?? siodvr.c

?? D12 Mcu 凌陽.用BULK傳輸方式,實現語音播放
?? C
字號:
//==================================================================================//
// 文件名:    SIODVR.C
// 描  述:   該文件主要處理DVR程序,包括錄、放音程序、以及語音數據的上傳、下載程序。
// 日  期:   2003/04/03
// 庫文件:   sacmv26e.lib
//==================================================================================//

#include "usbmain.h"
#include "dvr.h"
#include "hardware.h"

extern void SP_ClrWatchDog(void);
extern unsigned int SP_SIOReadAByte(unsigned long int);

extern void SP_SIOMassErase(void);
extern void SP_SIOSendAWord(unsigned long int,unsigned int);
extern unsigned int SP_SIOReadAWord(unsigned long int);
extern void SP_SIOSendAByte(unsigned long int,unsigned int);
extern unsigned int D12_ReadEndpoint(unsigned int endp, unsigned int len, unsigned int * buf);
extern unsigned int D12_WriteEndpoint(unsigned int endp, unsigned int len, unsigned int * buf);
extern unsigned int  MainEpBuf[];
extern unsigned int FileLen_Block;
extern unsigned int m_CtrlRecFileData;
extern unsigned int G_UpLoad_Flag;
extern unsigned int Key;
extern unsigned int KeyStatus;

void IsoDvrHandle(void);
void UpLoad(void);
void DownLoad(void);

unsigned long int SpeechFileLength=0;
unsigned long int DownLoadFileLen_Up=0x0000;
unsigned int Block_i=0;
unsigned int Byte_Value=0;
unsigned long int Addr=0;
unsigned int FileLen_Block=0;
unsigned long int Addr_UpLoad=0;
unsigned long int Up_Flash_Addr_Up=0;
unsigned int UpLoad_Counter=0;
unsigned long int Leave_Len=0;
unsigned int FlashAdd_Up=0;
unsigned long int Down_Flash_Addr_Up=0;

//=========================================================================
// 函數:    IsoDvrHandle
// 語法:    void IsoDvrHandle(void)       
// 描述:    進行數碼錄、放音處理
// 參數:    無
// 返回:    無
//=========================================================================
void IsoDvrHandle()
{
				unsigned int Ret;
					switch(Key)
					{
						
						case 0x00:
							break;
						case 0x01: // Record Key
							if (KeyStatus == Record) 
								SACM_DVR_Stop();
							KeyStatus = Record;
							Addr = 0;
							SACM_DVR_Initial(Manual);
						    SP_SIOMassErase();
	            			SACM_DVR_InitQueue();
							SACM_DVR_InitEncoder(RceMonitorOff);
							Key=0;  
							break;
						case 0x02: // Stop Key
							switch(KeyStatus)
							{
								case Record:   
									SACM_DVR_Stop();
									while(SACM_DVR_TestQueue() != Empty )
									{  // flush queue
										Ret = SACM_DVR_FetchQueue();	// Get data from Queue
										SP_SIOSendAWord(Addr,Ret);
										Addr += 2;
									}
									SpeechFileLength=Addr;
									break;
								case Play:
									SACM_DVR_Stop();
									break;
						
								default:			//
								    SACM_DVR_Stop();
									break;
							}				
							KeyStatus = Stop;
							break;
						case 0x04: // play key
							SACM_DVR_Initial(Manual);
							SACM_DVR_Stop();
							SP_RampUpDAC1();
							SP_RampUpDAC2();
							if(KeyStatus == Record)
							{
								while(SACM_DVR_TestQueue() != Empty)
								{
									Ret = SACM_DVR_FetchQueue();	// Put remain dat to Queue
									SP_SIOSendAWord(Addr,Ret);	// save to User Storage 
									Addr += 2;
								}// end of while
				                SpeechFileLength=Addr;
							
							}										
							KeyStatus = Play;
							Addr = 0x00c0;  
					
							SACM_DVR_InitQueue();
							while(SACM_DVR_TestQueue() != Full)
							{	
	                    		Ret=SP_SIOReadAWord(Addr);	     // User Storage SRAM/Flash ..
								SACM_DVR_FillQueue(Ret);		
								Addr += 2;	
								if(Addr>SpeechFileLength)
								{
									break;					
								}						
							}
							SACM_DVR_InitDecoder(DAC1+DAC2);
							Key=0;
							break;
						default:
							break;
					}		
			
					switch(KeyStatus)
					{	
						case Record:
							if(Addr < C_SflashSize)
							{					
								SACM_DVR_Encode();				    // Get data and Encode
								if(SACM_DVR_TestQueue() != Empty)
									{	// Save data if queue not empty
										Ret = SACM_DVR_FetchQueue();	// Get data from Queue
										SP_SIOSendAWord(Addr,Ret);			// save to User Storage 
										Addr += 2;
									}	
							}
							else
							{
					    		SACM_DVR_Stop();
								while(SACM_DVR_TestQueue() != Empty )
								{
									Ret = SACM_DVR_FetchQueue();	  // Get data from Queue
	     							SP_SIOSendAWord(Addr,Ret);
									Addr += 2;
								}
	         					KeyStatus = Stop;
						     }
			    			break;
						case Play:
						    if(SACM_DVR_TestQueue() != Full)
							{
	                        
		                    	Ret = SP_SIOReadAWord(Addr);	// Read User Storage 
								SACM_DVR_FillQueue(Ret);		// Fill Queue
								Addr += 2;
							}				
						
						    if(Addr<SpeechFileLength)
							{
								SACM_DVR_Decode();	
							}
							else
							{
								SACM_DVR_Stop();
								KeyStatus = Stop;	//放完語音,直接退出IsoDvrHandle();
								SP_RampDnDAC1();
								SP_RampDnDAC2();
							}	
				    		
							break;
							case Stop:
						default:
						    SACM_DVR_Stop();
							break;	
					}	// end of switch(Status)
		         
}

//==================================================================================
// 函數:    UpLoad
// 語法:    void UpLoad(void)       
// 描述:    每中斷一次就調用一次,從FLASH中讀取語音數據,并寫入D12芯片
// 參數:    無
// 返回:    無
//==================================================================================
void UpLoad(void)
{
	
	unsigned int Ret;
	unsigned int nRead=0;
	unsigned int i=0;
	unsigned int Block=0;
	Block=64;
	UpLoad_Counter++;
	if(Addr_UpLoad<SpeechFileLength)
	{
			
			Leave_Len=SpeechFileLength-Addr_UpLoad;	//Leave_Len值為偶數
			if(Leave_Len<=64)
			{
				Block=(unsigned int)Leave_Len;
			}
			while(i<Block)
			{
				nRead=SP_SIOReadAByte(Up_Flash_Addr_Up);
				Ret = SP_SIOReadAWord(Up_Flash_Addr_Up);	// Read User Storage
				MainEpBuf[i]=(Ret&0x00ff);
				Ret>>=8;
				i+=1;
				MainEpBuf[i]=Ret;
				i+=1;
				Up_Flash_Addr_Up+=2;
			}
			if(Leave_Len>64)
			{
				
				D12_WriteEndpoint(5,64,MainEpBuf);
				Addr_UpLoad+=64;
			}
			else if(Leave_Len<=64)
			{	
				D12_WriteEndpoint(5,Block,MainEpBuf);
				Addr_UpLoad=0;
				G_UpLoad_Flag=0;//over
			}
  		
	}//end if
}

//=========================================================================
// 函數:    DownLoad
// 語法:    void DownLoad(void)       
// 描述:    每中斷一次就調用一次,存儲PC機下載的數據。
// 參數:    無
// 返回:    無
//=========================================================================
void DownLoad(void)
{
	unsigned int k=0;
	Block_i=0;
    FileLen_Block= D12_ReadEndpoint(4,64,MainEpBuf);
    k=0;//0229
    k=0;
    k=0;
  	if(DownLoadFileLen_Up<SpeechFileLength)
	{
		FlashAdd_Up++;
		if(FlashAdd_Up==1)
		{
			for(k=0;k<0x0fff;k++)
			{
				SP_ClrWatchDog();
				SP_SIOSendAWord(0x00ff0000,0xffff);
			}
			while(Block_i<FileLen_Block)
			{
				for(k=0;k<0x00ff;k++)
				{
					SP_SIOSendAWord(0x00ff0000,0xffff);
				}
				Byte_Value=256*MainEpBuf[Block_i+1]+MainEpBuf[Block_i];
			    SP_SIOSendAWord(Down_Flash_Addr_Up,Byte_Value);// save to User Storage 
				Block_i+=2;
				Down_Flash_Addr_Up+=2;
				SP_ClrWatchDog();
			}
		
		}
		else
		{
			while(Block_i<FileLen_Block)
			{
				Byte_Value=256*MainEpBuf[Block_i+1]+MainEpBuf[Block_i];
			    SP_SIOSendAWord(Down_Flash_Addr_Up,Byte_Value);// save to User Storage 
				Block_i+=2;
				Down_Flash_Addr_Up+=2;
				SP_ClrWatchDog();
			}
		}
		DownLoadFileLen_Up+=FileLen_Block;

	}
	if(DownLoadFileLen_Up>=SpeechFileLength)//download end handle
	{
				
		m_CtrlRecFileData=0;
	    D12_ReadEndpoint(4,64,MainEpBuf);//
	    Block_i=0;
	    FlashAdd_Up=0;	
	  
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲二区在线视频| 欧美日韩中文精品| 国产成人亚洲综合色影视| 免费看欧美美女黄的网站| 天堂影院一区二区| 首页国产欧美日韩丝袜| 婷婷综合久久一区二区三区| 水野朝阳av一区二区三区| 日韩一区欧美二区| 久久se这里有精品| 国产成人亚洲综合a∨婷婷图片 | 欧美精品在线视频| 欧美美女直播网站| 日韩欧美国产麻豆| 精品对白一区国产伦| 久久众筹精品私拍模特| 国产日韩影视精品| 综合自拍亚洲综合图不卡区| 亚洲丝袜自拍清纯另类| 一区二区在线观看免费| 五月婷婷综合网| 久久99这里只有精品| 国产精品一级在线| 99久久精品国产观看| 欧洲av一区二区嗯嗯嗯啊| 7777精品伊人久久久大香线蕉经典版下载| 欧美色涩在线第一页| 在线播放91灌醉迷j高跟美女 | 精品久久久三级丝袜| 久久久久久久久久久久电影| 中文字幕免费不卡| 亚洲女同女同女同女同女同69| 洋洋成人永久网站入口| 日韩av电影免费观看高清完整版| 久久99精品国产.久久久久久| 国产丶欧美丶日本不卡视频| 91色乱码一区二区三区| 91精品国产91久久综合桃花 | 五月婷婷色综合| 狠狠色丁香九九婷婷综合五月| 国产精品99久久久久| 不卡的av电影| 7777精品伊人久久久大香线蕉的 | 亚洲视频在线一区观看| 亚洲电影欧美电影有声小说| 精品午夜久久福利影院| 91年精品国产| 欧美变态凌虐bdsm| 亚洲精品美腿丝袜| 加勒比av一区二区| 色狠狠桃花综合| 欧美本精品男人aⅴ天堂| 中文字幕日韩精品一区| 日本va欧美va精品发布| 97se亚洲国产综合自在线不卡| 日韩欧美在线观看一区二区三区| 国产精品高潮久久久久无| 午夜不卡在线视频| 91女人视频在线观看| 精品国内二区三区| 天天做天天摸天天爽国产一区 | 欧美撒尿777hd撒尿| 久久这里都是精品| 五月综合激情日本mⅴ| 处破女av一区二区| 日韩欧美综合一区| 亚洲国产成人av| av激情亚洲男人天堂| 精品国产91乱码一区二区三区 | 亚洲三级视频在线观看| 久久66热偷产精品| 欧美电影在线免费观看| 亚洲欧洲日韩在线| 国产精品一区在线观看你懂的| 欧美日韩三级视频| 亚洲精品国产成人久久av盗摄| 国产aⅴ综合色| 精品福利一二区| 免费亚洲电影在线| 欧美人体做爰大胆视频| 一区二区视频在线| 91免费在线视频观看| 国产精品―色哟哟| 国产成人午夜视频| 久久嫩草精品久久久久| 久久精品国产精品亚洲红杏| 欧美性受xxxx黑人xyx性爽| 国产精品第13页| 国产不卡高清在线观看视频| 欧美电影免费观看高清完整版在| 性做久久久久久免费观看| 欧美又粗又大又爽| 一区二区成人在线视频| 91在线视频网址| 亚洲另类在线一区| 在线中文字幕一区| 亚洲综合激情小说| 在线视频欧美区| 亚洲自拍偷拍综合| 91国产精品成人| 一级日本不卡的影视| 91在线高清观看| 中文字幕制服丝袜成人av| 床上的激情91.| 成人欧美一区二区三区1314| 成人免费视频视频| ...av二区三区久久精品| 91麻豆国产香蕉久久精品| 亚洲欧美日韩人成在线播放| 成人黄色av电影| 日韩久久一区二区| 一本久久综合亚洲鲁鲁五月天 | 亚洲精选免费视频| 欧美视频一区二区三区四区| 一级日本不卡的影视| 欧美日韩国产综合视频在线观看| 午夜精品一区二区三区电影天堂| 9191久久久久久久久久久| 日韩成人伦理电影在线观看| 日韩视频在线永久播放| 国产在线播放一区| 国产精品灌醉下药二区| 在线观看日韩毛片| 蜜臀99久久精品久久久久久软件| 日韩一区二区免费在线电影| 国产一区欧美日韩| 亚洲欧美另类久久久精品2019| 欧美猛男男办公室激情| 久久国产精品99久久人人澡| 久久久精品国产免大香伊| 99精品视频一区| 亚洲va欧美va天堂v国产综合| 欧美一区二区三区免费| 国产一区在线观看麻豆| 亚洲欧美一区二区视频| 欧美三级电影网站| 国产一区二区精品久久91| 国产精品久久久久久久久免费桃花 | 欧美伊人久久久久久午夜久久久久| 亚洲自拍偷拍综合| 亚洲精品一区二区在线观看| 成人97人人超碰人人99| 亚洲综合偷拍欧美一区色| 欧美一级黄色大片| 成人午夜大片免费观看| 亚洲一区欧美一区| 久久久精品一品道一区| 91成人在线精品| 激情成人综合网| 亚洲自拍另类综合| 国产色产综合色产在线视频| 日本高清视频一区二区| 久久国产精品99精品国产| 综合久久给合久久狠狠狠97色| 日韩天堂在线观看| 91视频免费观看| 国产麻豆视频精品| 午夜精品一区二区三区电影天堂| 久久精品欧美日韩精品| 欧洲精品一区二区三区在线观看| 国产在线不卡一区| 婷婷国产在线综合| 亚洲手机成人高清视频| 精品国产sm最大网站免费看| 日本乱人伦一区| 国产精品99久久久久久有的能看| 午夜视频在线观看一区| 亚洲国产精品99久久久久久久久| 欧美二区三区的天堂| 色综合天天视频在线观看| 国内外成人在线视频| 午夜精品福利一区二区三区蜜桃| 中文天堂在线一区| 日韩欧美色综合网站| 欧洲视频一区二区| 成人精品视频一区二区三区| 蜜桃视频一区二区三区在线观看| 一区二区三区在线免费| 国产日产欧美一区| 亚洲精品一区二区精华| 欧美日韩国产在线观看| 日本大香伊一区二区三区| 成人午夜免费av| 国产精品羞羞答答xxdd| 久久精品国产99| 另类中文字幕网| 日本成人在线看| 亚洲国产va精品久久久不卡综合| 国产亲近乱来精品视频| 26uuu另类欧美亚洲曰本| 日韩免费视频一区| 91精品国产免费| 欧美日韩国产中文| 欧美日本高清视频在线观看| 91久久一区二区| 欧美午夜不卡视频| 精品视频一区三区九区| 欧美专区在线观看一区| 91美女片黄在线| 色婷婷久久综合|