⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hali2c.h

📁 威望公司MP3 + USB MCU 的参考软件
💻 H
字号:
/****************************************************************
*                      Viaon Technology (Suzhou) Co.,Ltd
*
*    Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
*                    All rights reserved.
*
*
* Filename:      	hali2c.h
*
* Programmer:    	Greg 
*
* Created: 	 	1/2/2008
*
* Description: 		public functions 
*              
*        
* Change History (most recent first):	2008.1.2
****************************************************************/
#ifndef __HALI2C_H__
#define __HALI2C_H__

#include "utiltypedef.h"
#include "va4010reg.h"
#include "config.h"
#include "common.h"

//#define E2PROM_24C02		0X01
//#define E2PROM_24C64		0X02
//#define E2PROM_TYPE		E2PROM_24C02

#if(BOARD_ID == EVB_V1)
#if(E2PROM_TYPE==E2PROM_24C08)
/*	Slave Device Addressing:	1010_A2A1A0R(W)	

	device identifier:1010
	device_address: A2A1A0 	A1,A0:high memory bit
	R(W):Read/Write bit
*/
#define DEVICE_WRITE		0XA0
#define DEVICE_READ			0XA1
#else
#define DEVICE_WRITE		0XA0
#define DEVICE_READ			0XA1
#endif
#else
#define DEVICE_WRITE		0xA0
#define DEVICE_READ			0xA1
#endif

//Take care about the CPU clock
#define DELAY_TIME 	16 
#define WRITE_DELAY_MS   30
#define I2C_NAK		1
#define I2C_ACK		0

#if (E2PROM_TYPE	== E2PROM_24C64)
#define E2PROM_PAGE_SIZE 	32 //byte
#define E2PROM_PAGE_SIZEEXP 	5 

void Write_One_Byte(WORD addr,BYTE thedata);
BYTE Read_One_Byte(WORD addr);
void Write_A_Page(BYTE *buffer,WORD addr);
void Read_N_Bytes(BYTE *buffer,WORD n,WORD addr);
#endif
//////////////////////////////////
#if (E2PROM_TYPE	== E2PROM_24C02)
#define E2PROM_PAGE_SIZE 			8 //byte
#define E2PROM_PAGE_SIZEEXP 		3 

void Write_One_Byte(BYTE addr,BYTE thedata);
void Write_A_Page(BYTE *buffer,BYTE addr);
void Write_2_Page(BYTE *buffer,BYTE addr);
void Read_N_Bytes(BYTE *buffer,BYTE n, BYTE addr);
#endif
#if (E2PROM_TYPE	== E2PROM_24C08)
#define E2PROM_PAGE_SIZE 			16//byte
#define E2PROM_PAGE_SIZEEXP 		4 

void Write_One_Byte(WORD addr,BYTE thedata);
BYTE Read_One_Byte(WORD addr);
void Write_A_Page(BYTE *buffer,WORD addr);
void Read_N_Bytes(BYTE *buffer,WORD n,WORD addr);
#endif

#if (E2PROM_TYPE	== E2PROM_NONE)
#define E2PROM_PAGE_SIZE 			1//byte
#define E2PROM_PAGE_SIZEEXP 		0 

#define Write_One_Byte(addr, thedata);
//BYTE Read_One_Byte(WORD addr);
#define Write_A_Page(buffer, addr);
#define Read_N_Bytes(buffer, n, addr);
#endif


void WriteE2PRom(BYTE *buf, WORD len, WORD addr);
//void ReadE2PRom(BYTE* buf, WORD len, WORD addr);

///////i2c bus function //////////
void I2C_Start(void);
void I2C_Stop(void);
void SEND_0(void);   /* SEND ACK */
void SEND_1(void);   /* SEND ACK */

void I2C_Init(void);
#if 0
BYTE Check_Acknowledge(void);
#else
void Check_Acknowledge(void);
#endif
void WriteI2CByte(BYTE b);
BYTE ReadI2CByte(void);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -