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

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

?? iic.c

?? samsung s3c2443 i2c driver
?? C
字號:
;/*********************************************************************
;* Project Name : mDirac III
;*
;* Copyright 2005 by Samsung Electronics, Inc.
;* All rights reserved.
;*
;* Project Description :
;* This software is only for verifying functions of the mDirac III
;* Anybody can use this code without our permission.
;**********************************************************************
;*
;*	Description	:	Code for the basic function for IIC.
;*					It can support write and read mode with 7-bit addresses
;*					Can make the 10-bit address write and read mode
;*					with assemble these functions.
;*	
;*	History
;*			R0.0 (2005.9.30) : Y.C.Kwon draft
;*
;**********************************************************************/

#include "System.h"


#define	SlaveRX			(0)
#define	SlaveTX			(1)
#define	MasterRX		(2)
#define	MasterTX		(3)


static volatile char *IIC_BUFFER;
static volatile unsigned int IIC_PT;
static unsigned int IIC_DATALEN;
static volatile unsigned char IIC_STAT;


void __irq IIC_Int( void)
{
	IIC_STAT = rIICSTAT;

	switch( (IIC_STAT>>6)&0x3) {

	case SlaveRX	:	break;

	case SlaveTX	:	break;

	case MasterRX	:	if (IIC_PT>0)
							IIC_BUFFER[IIC_PT-1] = rIICDS;

						IIC_PT++;

						if (IIC_PT==IIC_DATALEN)
							rIICCON 	&=  ~(1<<7);
						else if (IIC_PT>IIC_DATALEN)
							rIICSTAT	=	0x90;			//	Stop Master Rx condition

						rIICCON &= ~(1<<4);					//	Clear pending bit to resume
						break;

	case MasterTX	:	if (IIC_PT<IIC_DATALEN)
							rIICDS	=	IIC_BUFFER[IIC_PT];
						else	
							rIICSTAT= 	0xd0;				//	Stop Master Tx condition, ACK flag clear

						IIC_PT++;

						rIICCON &= ~(1<<4);					//	Clear pending bit to resume
						break;
	}

	IIC_STAT&=0xf;
	ClearPending(BIT_IIC);
}

void IIC_open( unsigned int freq)		//	Hz order.
{
	unsigned int	clk_prescaler, clk_divider;

	rGPECON = rGPECON & ~((U32)(0xf<<28)) | ((U32)(0xa<<28)); // IIC setting
    rGPEUDP = rGPEUDP & ~((U32)(0xf<<28)) | ((U32)(0xa<<28));	

	if (((PCLK>>4)/freq)>0xf) {
		clk_prescaler	=	1;
		clk_divider		=	(PCLK>>9)/freq;		//	PCLK/512/freq
	} else {
		clk_prescaler	=	0;
		clk_divider		=	(PCLK>>4)/freq;		//	PCLK/16/freq
	}

    pISR_IIC = (unsigned)IIC_Int;
	rINTMSK &= ~(BIT_IIC);

	//	Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit clock value Tx clock=IICCLK/16
	rIICCON		=	(clk_prescaler<<6) | (1<<5) | (clk_divider&0xf);

	rIICADD		=	0x10;							//	Slave address = [7:1]
	rIICSTAT	=	0x10;                  			//	IIC bus data output enable(Rx/Tx)
	rIICLC		=	0;		 						//	SDA Filter disable
}


void IIC_close( void)
{
	rINTMSK |= BIT_IIC;

	rIICSTAT = 0x0;                    		//	IIC bus data output disable(Rx/Tx)
}

//	Write Mode Format with 7-bit addresses
void IIC_Write( unsigned char SlaveAddr, char *Data, unsigned int n)
{
	while(rIICSTAT&(1<<5));					//	Wait until IIC bus is free.

	IIC_BUFFER	=	Data;
	IIC_PT		=	0;
	IIC_DATALEN	=	n;

	rIICCON 	|=  (1<<7);
	rIICDS		=	SlaveAddr;
	rIICSTAT	=	0xF0;					//	Master Tx Start.
}

//	Read Mode Format with 7-bit addresses
void IIC_Read( unsigned char SlaveAddr, char *Data, unsigned int n)
{
	while(rIICSTAT&(1<<5));					//	Wait until IIC bus is free.

	IIC_BUFFER	=	Data;
	IIC_PT		=	0;
	IIC_DATALEN	=	n;

	rIICCON 	|=  (1<<7);
	rIICDS		=	SlaveAddr;
	rIICSTAT	=	0xB0;					//	Master Rx Start
}

void IIC_Wait( void)						//	Waiting for the command takes effect.
{											//	But not for IIS bus free.
	while(IIC_PT<=IIC_DATALEN);
}

unsigned char IIC_Status( void)						//	Return IIC Status Register value at last interrupt occur.
{
	return	IIC_STAT;
}


//****************************************************************//
//*	Basic test code for Serial EEPROM with the basic functions.
//****************************************************************//

#define	EEPROMSlaveAddr		0xa0

void WrSerialEEPROM( char Addr, char Data)
{
	char D[2];

	D[0]=Addr;
	D[1]=Data;
	IIC_Write( EEPROMSlaveAddr, D, 2);

	do	{									//	Polling for an ACK signal from SerialEEPROM.
		IIC_Write( EEPROMSlaveAddr, NULL, 0);
		IIC_Wait();
	} while(IIC_Status()&0x1);
}

void RdSerialEEPROM( char Addr, char *Data)
{
	IIC_Write( EEPROMSlaveAddr, &Addr, 1);
	IIC_Read( EEPROMSlaveAddr, Data, 1);
	IIC_Wait();								//	Waiting for read complete.
}

void Test_IIC( void)
{
    unsigned int i;
    char D;

    printf("[ IIC Test using Serial EEPROM ]\n");

	IIC_open(200000);	//	Serial EEPROM IIC clk = 200KHz


    printf("\nWrite (0xff) and read back from EEPROM\n");
    
    for(i=0;i<256;i++) {
        D=0;
        WrSerialEEPROM(i,0xff);
        RdSerialEEPROM(i,&D);
        printf("%02x ",D);
        if ((i&0xf)==0xf) printf("\n");
    }

    printf("\nWrite (0~255) and read back from EEPROM\n");
    
    for(i=0;i<256;i++) {
        D=0;
        WrSerialEEPROM(i,i);
        RdSerialEEPROM(i,&D);
        printf("%02x ",D);
        if ((i&0xf)==0xf) printf("\n");
    }

    IIC_close();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一卡二卡| 欧美高清在线视频| 亚洲动漫第一页| 91麻豆精品国产自产在线观看一区 | 视频一区二区不卡| 精品久久久久久久久久久久包黑料 | 欧美一区二区三区在线视频| 国产精品一二三区| 亚洲福利视频三区| 日产国产高清一区二区三区| 国产精品欧美一级免费| 欧美人伦禁忌dvd放荡欲情| 国产成人h网站| 日本中文字幕不卡| 激情综合色综合久久综合| 亚洲午夜激情av| 日韩精品1区2区3区| 日本视频在线一区| 国产精一品亚洲二区在线视频| 国产黄色成人av| 色激情天天射综合网| 国产成人在线网站| 91蝌蚪porny| 成人高清在线视频| 国产精品一区二区视频| 91首页免费视频| 欧美日韩国产中文| 2021国产精品久久精品| 日韩免费在线观看| 国产精品欧美一区二区三区| 午夜精品久久久久久久蜜桃app | 日韩精品乱码av一区二区| 国产伦精品一区二区三区免费| 亚洲va欧美va人人爽| 亚洲视频一区二区在线| 亚洲综合一二三区| 国产欧美一区二区精品忘忧草| 91精品国产全国免费观看| 久久精品亚洲乱码伦伦中文| 国产亚洲欧美日韩在线一区| 亚洲精品五月天| 亚洲一卡二卡三卡四卡五卡| 麻豆精品一区二区| 国产一区二区调教| 欧美日韩一区二区三区不卡| 欧美日韩电影一区| 国产精品日韩成人| 久久av资源网| 国产宾馆实践打屁股91| 国产91在线|亚洲| 91精品国产一区二区三区香蕉| 中文字幕精品综合| 精品制服美女久久| 欧美日韩国产天堂| 亚洲欧美视频在线观看| 夜夜操天天操亚洲| 日韩高清一区在线| 777奇米四色成人影色区| 国产在线视频不卡二| 激情综合五月天| 欧美精品免费视频| 性做久久久久久| 成人黄色av电影| 久久久精品免费免费| 亚洲男同性恋视频| 成人精品免费网站| 欧美伦理影视网| 亚洲少妇30p| 91丨九色丨黑人外教| 国产精品毛片大码女人| 高清国产一区二区| 久久久精品免费网站| 国产精品系列在线观看| 久久久精品黄色| 国产精品 日产精品 欧美精品| 精品福利一区二区三区| 国产精品久久久久久久浪潮网站| 亚洲线精品一区二区三区八戒| 91玉足脚交白嫩脚丫在线播放| 国产精品理论片在线观看| 成人永久aaa| 国产精品久久久久久久久久免费看 | 884aa四虎影成人精品一区| 午夜视频在线观看一区二区三区| 欧美亚洲图片小说| 欧美激情中文不卡| 99久久婷婷国产综合精品电影| 日韩欧美视频在线| 精品在线视频一区| 国产精品视频观看| 日本丶国产丶欧美色综合| 亚洲福利国产精品| 久久综合色播五月| 不卡的av网站| 亚洲v日本v欧美v久久精品| 精品少妇一区二区三区在线视频| 国产尤物一区二区| 亚洲欧洲日韩一区二区三区| 国产精品一区二区黑丝| 国产精品嫩草影院com| 色94色欧美sute亚洲线路一ni| 亚洲成av人**亚洲成av**| 日韩精品一区二区三区在线观看 | 97精品久久久午夜一区二区三区 | 91丨porny丨在线| 日韩高清不卡一区二区三区| 久久久久久毛片| 色悠悠久久综合| 亚洲人成7777| 日韩一区二区三区四区| 蜜桃视频在线观看一区| 国产精品国产三级国产| 91精品国产综合久久香蕉的特点 | 亚洲一级电影视频| 欧美精品一区视频| 欧美色综合天天久久综合精品| 国模套图日韩精品一区二区| 一区二区三区影院| 国产欧美日韩视频在线观看| 欧美日韩精品免费| 波多野结衣中文字幕一区二区三区| 日韩在线观看一区二区| 国产精品国产三级国产普通话99| 3d成人h动漫网站入口| 99久久99久久精品免费看蜜桃 | 国产三级三级三级精品8ⅰ区| 欧美亚洲综合一区| 成人黄色电影在线| 国内欧美视频一区二区| 亚洲国产欧美日韩另类综合| 中文字幕成人网| 亚洲精品在线免费播放| 欧美久久久影院| 色又黄又爽网站www久久| 成人激情av网| 粉嫩一区二区三区在线看| 免费成人在线观看视频| 亚洲精品在线电影| 欧美一区二区三区性视频| 在线观看欧美精品| 久久精品国产亚洲5555| 日本欧美一区二区三区| 香蕉久久一区二区不卡无毒影院| 亚洲激情欧美激情| 亚洲情趣在线观看| 亚洲色图色小说| 18成人在线观看| 亚洲免费三区一区二区| **网站欧美大片在线观看| 亚洲欧洲国产日本综合| 国产精品久久久久久福利一牛影视 | 国产精品乱码久久久久久| 国产日韩欧美综合一区| 久久久噜噜噜久噜久久综合| 欧美sm美女调教| 久久影视一区二区| 久久男人中文字幕资源站| 久久这里只有精品首页| 久久精品亚洲精品国产欧美kt∨| 久久久精品人体av艺术| 国产精品美女久久福利网站| 国产精品入口麻豆九色| 亚洲欧美日韩国产一区二区三区| 亚洲日穴在线视频| 视频在线观看一区| 麻豆国产欧美一区二区三区| 极品少妇xxxx偷拍精品少妇| 国产suv精品一区二区883| 成人国产精品免费观看视频| 色94色欧美sute亚洲13| 欧美日韩一区不卡| 日韩欧美美女一区二区三区| 久久精品亚洲国产奇米99| 国产精品毛片a∨一区二区三区| 亚洲欧美日韩国产手机在线| 天堂va蜜桃一区二区三区| 精品亚洲欧美一区| 99久久综合精品| 成人午夜精品一区二区三区| 成人性生交大片免费看中文| 91传媒视频在线播放| 欧美一级视频精品观看| www精品美女久久久tv| 综合久久一区二区三区| 亚洲大片一区二区三区| 韩国v欧美v亚洲v日本v| 色综合天天性综合| 大白屁股一区二区视频| 在线观看视频91| 国产日韩欧美激情| 亚洲一区二区三区四区不卡| 久久精品国产精品亚洲红杏| 91视频精品在这里| 日韩欧美国产1| 亚洲自拍偷拍av| 成人午夜电影网站| 日韩一区二区电影| 亚洲精选视频在线| 国产制服丝袜一区| 欧美人伦禁忌dvd放荡欲情|