📄 hali2c.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 + -