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

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

?? i2c.c

?? JPEG壓縮編碼在TMS320VC5509的實現代碼
?? C
字號:
//i2c.c
#include "BasicDefinition.h"
#define K_RECEIVE_SIZE 64

BYTE Buffer[128];

void I2cInitForAic23(void)
{
	I2CMDR1 = 0x4e20;
	
	I2COAR = 0x0000;//don't care if master。當從模式時表示DSP的slaveaddress
	
	I2CPSC = 0x2056;
	
	I2CCLKL = 0x0f;
	
	I2CCLKH = 0x0f;	

	I2CMDR1 |= 0x200;//TRX位設置為1,即設置為傳輸模式

	I2CCNT = 2;//發送長度為2字節,Aic23的命令長度為1個字

	I2CSAR = 0x1a;//設置從設備的地址 

	I2CMDR1 |= 0x400;//MST設置為1,打開主模式

	//第1種傳輸模式 // S-A-D..(n)..D-P mode

	//I2CMDR1 &= 0xff7f;//RM位為0,不使用重復模式 

	//I2CMDR1 |= 0x0800;//STP位為1,有自動停止位
}


int I2cWriteAic23(unsigned int *data)
{
	unsigned int i,j; 
	unsigned int m_nStatus = 1;
  

	I2CMDR1 |= 0x0e00;
	
	for(j=0;j<30;j++)
	{
		for (i=0;i<K_TIME_OUT;i++)//check for bus busy
		{
			m_nStatus = I2CSTR & 0x1000;//通過BB位來判斷是否Busy
			if(m_nStatus == 0)break; 
		}
	}
  
	if(i >= K_TIME_OUT)//bus busy timeout error
		return 1;  
  
	I2CDXR = *data++;//傳輸第1個數

	I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
	                
	for (i=0;i<K_TIME_OUT;i++)//check for NACK status
	{
		m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
		if(m_nStatus == 0)break; 
	}
    
	if(i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 3;
  
	for (i=0;i<K_TIME_OUT;i++)//check for DXR status,看發送寄存器是否能夠存放數據
	{
		m_nStatus = I2CSTR & 0x0010;
		if(m_nStatus == 0x0010)break;     
	}
      
	if(i >= K_TIME_OUT)//time out for transmit DXR ready
		return 4;
  	
    I2CDXR = *data++;//傳輸第2個數
   
    for(j=0;j<30;j++)
    {
		for(i=0;i<K_TIME_OUT;i++)//通過NACK位來判斷是否收到應答信號
		{
			m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
			if(m_nStatus == 0)break; 
		}
	}
	    
	if (i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 5;                                                            
    
    return 0;  
}


void I2cInitForEEPROM(void)
{
	I2CMDR1 = 0x4620;
	
	I2COAR = 0x0000;//don't care if master。當從模式時表示DSP的slaveaddress
	
	I2CPSC = 0x2056;
	
	I2CCLKL = 0x3f;
	
	I2CCLKH = 0x3f;	

	I2CMDR1 |= 0x200;//TRX位設置為1,即設置為傳輸模式

	//I2CCNT = 1;

	I2CSAR = 0x50;//設置從設備的地址 

	I2CMDR1 |= 0x400;//MST設置為1,打開主模式

	//第1種傳輸模式 // S-A-D..(n)..D-P mode

	//I2CMDR1 &= 0xff7f;//RM位為0,不使用重復模式

	I2CMDR1 |= 0x0800;//STP位為1,有自動停止位
}


UINT SequentialRead(FILE* fp,UINT FileSize)
{
	unsigned int i,j; 
	unsigned int m_nStatus = 0;
	
	BYTE TmpBuf1,TmpBuf2;
	
	UINT m_bError = 0;//沒有錯誤

	I2CMDR1 = 0x4420;
	
	I2CCNT = FileSize;//接收10個字節
			
	I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
	
	for(j=0;j<FileSize;j++)
	{
		for (i=0;i<K_TIME_OUT;i++)//check for DRR status,看接收寄存器是否已經收到數據
		{
			m_nStatus = I2CSTR & 0x0008;
			if(m_nStatus == 0x0008)break;
		}
		
		if(i >= K_TIME_OUT)//time out for transmit DXR ready
			return 0xffff;
			
		TmpBuf1 = I2CDRR;
		
		TmpBuf2 = fgetc(fp);
		if(TmpBuf1 != TmpBuf2)
			m_bError = 0xfffe;
	}
	
	I2CMDR1 |= 0x0800;//STP位設置為1,產生停止條件
	
	return m_bError;
}


UINT AT24SetAddress(UINT DataAddr)
{
	UINT i; 
	UINT m_nStatus = 1;
	
	UINT TmpBufAddr = DataAddr;
	
	I2CMDR1 = 0x4620;//注意不要STOP
	
	I2CCNT = 2;
	
	//I2CMDR1 |= 0x0e00;
	
	for (i=0;i<K_TIME_OUT;i++)//check for bus busy
	{
 		m_nStatus = I2CSTR & 0x1000;//通過BB位來判斷是否Busy
		if(m_nStatus == 0)break; 
	}

  
	if(i >= K_TIME_OUT)//bus busy timeout error
		return 1;  
  
	I2CDXR = (BYTE)(TmpBufAddr>>8);//((BYTE*)(&TmpBufAddr))[1];//傳輸第1個數

	I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
	                
	for (i=0;i<K_TIME_OUT;i++)//check for NACK status
	{
		m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
		if(m_nStatus == 0)break; 
	}
    
	if(i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 3;
  
	for (i=0;i<K_TIME_OUT;i++)//check for DXR status,看發送寄存器是否能夠存放數據
	{
		m_nStatus = I2CSTR & 0x0010;
		if(m_nStatus == 0x0010)break;     
	}
      
	if(i >= K_TIME_OUT)//time out for transmit DXR ready
		return 4;
  	
    I2CDXR = (BYTE)(TmpBufAddr);//((BYTE*)(&TmpBufAddr))[0];//傳輸第2個數
   
	for(i=0;i<K_TIME_OUT;i++)//通過NACK位來判斷是否收到應答信號
	{
		m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
		if(m_nStatus == 0)break; 
	}
	    
	if (i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 5;                                                            
    
    return 0;
}

UINT AT24PageWrite(BYTE* InputBuf,UINT addr)
{
	unsigned int i,j; 
	unsigned int m_nStatus;
	UINT TmpAddr = addr;
  

	I2CMDR1 |= 0x0e00;
	
	I2CCNT = K_CURRENT_PAGE_SIZE + 2;//發送數據的長度(包括了地址)
	
	for(j=0;j<30;j++)
	{
		for (i=0;i<K_TIME_OUT;i++)//check for bus busy
		{
			m_nStatus = I2CSTR & 0x1000;//通過BB位來判斷是否Busy
			if(m_nStatus == 0)break; 
		}
	}
  
	if(i >= K_TIME_OUT)//bus busy timeout error
		return 1;  

	I2CDXR = (BYTE)(TmpAddr>>8);//((BYTE*)(&TmpAddr))[0];//0x00;//寫地址的高位

	I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
	                
	for (i=0;i<K_TIME_OUT;i++)//check for NACK status
	{
		m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
		if(m_nStatus == 0)break;
	}
    
	if(i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 3;
  
	for (i=0;i<K_TIME_OUT;i++)//check for DXR status,看發送寄存器是否能夠存放數據
	{
		m_nStatus = I2CSTR & 0x0010;
		if(m_nStatus == 0x0010)break;     
	}
      
	if(i >= K_TIME_OUT)//time out for transmit DXR ready
		return 4;
 
  	 	


    I2CDXR = (BYTE)(TmpAddr);//((BYTE*)(&TmpAddr))[1];//0x00;//寫地址的低位
   
	for(i=0;i<K_TIME_OUT;i++)//通過NACK位來判斷是否收到應答信號
	{
		m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
		if(m_nStatus == 0)break; 
	}
	    
	if (i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
		return 5;  
		
	for (i=0;i<K_TIME_OUT;i++)//check for DXR status,看發送寄存器是否能夠存放數據
	{
		m_nStatus = I2CSTR & 0x0010;
		if(m_nStatus == 0x0010)break;     
	}
      
	if(i >= K_TIME_OUT)//time out for transmit DXR ready
		return 4;




	for(j=0;j<K_CURRENT_PAGE_SIZE;j++)//寫剩余的數據
	{
    	I2CDXR = *InputBuf++;
   
		for(i=0;i<K_TIME_OUT;i++)//通過NACK位來判斷是否收到應答信號
		{
			m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
			if(m_nStatus == 0)break; 
		}
	    
		if (i >= K_TIME_OUT)//No acknowledge bit is set, NACK error
			return 5;  
		
		for (i=0;i<K_TIME_OUT;i++)//check for DXR status,看發送寄存器是否能夠存放數據
		{
			m_nStatus = I2CSTR & 0x0010;
			if(m_nStatus == 0x0010)break;     
		}
      
		if(i >= K_TIME_OUT)//time out for transmit DXR ready
			return 4;
	}	                                                          
    
    return 0;  
}

void CheckProgStatus(void)
{
	UINT i;
	UINT m_bIdle = 0;
	UINT m_nStatus;
	
	I2CMDR1 |= 0x0e00;
	
	I2CMDR1 &= 0xf7ff;
	
	I2CCNT = 0;	
	
	I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
	
	while(1)
	{
		for (i=0;i<K_TIME_OUT;i++)//check for NACK status
		{
			m_nStatus = I2CSTR & 0x2;//通過NACK位來判斷是否收到應答信號
			if(m_nStatus == 0)
			{
				m_bIdle = 1;
				break;
			}
		}
		if(m_bIdle == 0)
			I2CMDR1 |= 0x2000;//將STT位設置為1,產生起始條件
		else
		{
			generate_stop_condition;
			break;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡视频一二三区| 亚洲欧美日韩国产另类专区| 91社区在线播放| 91亚洲精华国产精华精华液| 不卡av在线网| 91蝌蚪porny| 在线精品亚洲一区二区不卡| 欧美性一二三区| 欧美日本一区二区在线观看| 欧美日韩一级视频| 这里只有精品电影| 欧美va亚洲va在线观看蝴蝶网| 日韩亚洲欧美中文三级| 国产午夜精品久久| 1区2区3区国产精品| 亚洲啪啪综合av一区二区三区| 一区二区三区欧美日韩| 成人福利视频网站| 日本道精品一区二区三区| 色欧美日韩亚洲| 91精品国产日韩91久久久久久| 2022国产精品视频| 中文文精品字幕一区二区| 亚洲精品欧美专区| 免费在线视频一区| 成人国产精品免费观看动漫 | 免费的国产精品| 国产一区二区在线视频| av在线播放不卡| 欧美伦理影视网| 国产欧美日韩亚州综合| 亚洲制服欧美中文字幕中文字幕| 美日韩一区二区| 色一区在线观看| 久久亚洲私人国产精品va媚药| 亚洲欧美日韩综合aⅴ视频| 美国av一区二区| 色婷婷香蕉在线一区二区| 精品久久久久久综合日本欧美| 国产精品久久久久婷婷| 久久99精品久久久久久国产越南| 91在线观看免费视频| 欧美videos中文字幕| 亚洲一区二区精品久久av| 国产精品18久久久久久vr| 91极品视觉盛宴| 欧美经典一区二区| 蜜臀av性久久久久蜜臀av麻豆| 91啪亚洲精品| 国产午夜亚洲精品理论片色戒| 午夜视黄欧洲亚洲| 一本色道综合亚洲| 日本一区二区在线不卡| 久久国内精品自在自线400部| 欧美亚洲一区三区| 国产精品免费久久久久| 韩国成人福利片在线播放| 欧美精品 国产精品| 亚洲品质自拍视频| 成人精品gif动图一区| 欧美一区二区在线免费播放| 久久精品夜色噜噜亚洲a∨| 久久国产综合精品| 在线不卡免费av| 亚洲国产一二三| 色8久久精品久久久久久蜜| 亚洲欧洲色图综合| 成人aa视频在线观看| 国产精品私房写真福利视频| 欧美艳星brazzers| 亚洲另类春色校园小说| av在线不卡观看免费观看| 国产精品久久久久9999吃药| 成人精品一区二区三区中文字幕| www激情久久| 国产精品综合二区| 国产亚洲精品7777| 成人app在线观看| 中文字幕一区二区三区av| 97精品视频在线观看自产线路二| 中文字幕va一区二区三区| caoporm超碰国产精品| 中文字幕一区二区三区四区| 99精品久久免费看蜜臀剧情介绍| 中文字幕一区二区三区在线观看| 91视频免费观看| 一区二区三区中文字幕| 在线成人高清不卡| 国产一二三精品| 国产精品国产三级国产普通话99 | 久久久三级国产网站| 国产一二精品视频| 中文字幕亚洲成人| 欧美日韩1234| 国产精品一区二区果冻传媒| 国产精品麻豆欧美日韩ww| 欧洲av在线精品| 精品亚洲国内自在自线福利| 国产精品入口麻豆原神| 欧美性色黄大片| 国模大尺度一区二区三区| 最新久久zyz资源站| 精品视频一区三区九区| 经典三级在线一区| 亚洲欧洲成人av每日更新| 欧美日韩国产一级| 国产精品影音先锋| 亚洲动漫第一页| 久久久久久久综合色一本| 在线观看日韩国产| 韩国v欧美v亚洲v日本v| 亚洲天堂av一区| 日韩欧美亚洲国产另类| 99久久亚洲一区二区三区青草| 亚洲电影一区二区三区| 国产欧美一二三区| 5月丁香婷婷综合| 99热在这里有精品免费| 免费高清不卡av| 亚洲综合激情小说| 国产欧美精品在线观看| 欧美精品丝袜中出| 日本韩国欧美一区| 不卡视频一二三| 狠狠色丁香婷综合久久| 日本免费新一区视频| 亚洲女同ⅹxx女同tv| 国产欧美一区二区三区沐欲| 欧美裸体一区二区三区| 一本一道综合狠狠老| 国产suv精品一区二区883| 日韩和欧美的一区| 一区二区三区四区中文字幕| 中文字幕免费观看一区| 精品理论电影在线| 欧美一区二区日韩| 欧美喷水一区二区| 欧美影视一区在线| 91久久国产最好的精华液| 99久久精品国产一区| 成人一道本在线| 国产成人精品一区二| 韩国三级在线一区| 精品一区精品二区高清| 日本怡春院一区二区| 日韩黄色免费电影| 免费日本视频一区| 免费日本视频一区| 免费不卡在线观看| 日本强好片久久久久久aaa| 天使萌一区二区三区免费观看| 亚洲一区二区三区在线看| 亚洲欧洲中文日韩久久av乱码| 中文字幕一区二区三区精华液 | 91丝袜高跟美女视频| 99精品久久只有精品| 97aⅴ精品视频一二三区| 99这里都是精品| 91香蕉视频mp4| 欧美又粗又大又爽| 91精品国产综合久久福利| 日韩欧美一级特黄在线播放| 精品国产在天天线2019| 久久久亚洲高清| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美二区三区| 中文字幕亚洲区| 欧美成人女星排名| 亚洲精品一二三四区| 黄色日韩网站视频| 色综合久久久久综合体桃花网| 欧美亚洲国产怡红院影院| 欧美一级二级在线观看| 欧美国产在线观看| 青青草国产成人99久久| 一本高清dvd不卡在线观看 | 六月婷婷色综合| 91在线看国产| 久久精品一区二区三区av| 亚洲国产sm捆绑调教视频| 国产福利不卡视频| 欧美久久久久久久久| 一区二区三区中文字幕| 国产毛片精品视频| 欧美一区二区在线观看| 午夜成人在线视频| 欧美影院精品一区| 亚洲免费伊人电影| 91精品福利在线| 亚洲国产视频一区| 欧美天天综合网| 亚洲高清不卡在线| 欧美久久婷婷综合色| 亚洲一区二区三区小说| 欧美精品xxxxbbbb| 偷窥国产亚洲免费视频| 精品久久久久久久久久久久久久久久久| 亚洲亚洲人成综合网络| 91精品在线一区二区| 久久精品国产**网站演员|