?? eeprom.c
字號:
#include "fx2.h"
#include "fx2regs.h"
#include "io.h"
#define SERIAL_ADDR 0x50
BYTE DB_Addr; //TPM Dual Byte Address stat
BYTE I2C_Addr; //TPM I2C address
void EEPROMInit()
{
EZUSB_InitI2C();
// Determine I2C boot eeprom device address; addr = 0x0 for 8 bit addr eeproms (24LC00)
I2C_Addr = SERIAL_ADDR | ((I2CS & 0x10) >> 4); // addr=0x01 for 16 bit addr eeprom (LC65)
// Indicate if it is a dual byte address part
DB_Addr = (BOOL)(I2C_Addr & 0x01); //TPM: ID1 is 16 bit addr bit - set by rocker sw or jumper
}
void EEPROMWriteByte(WORD addr, BYTE value)
{
BYTE i = 0;
BYTE xdata ee_str[3];
if(DB_Addr)
ee_str[i++] = MSB(addr);
ee_str[i++] = LSB(addr);
ee_str[i++] = value;
EZUSB_WriteI2C(I2C_Addr, i, ee_str);
EZUSB_WaitForEEPROMWrite(I2C_Addr);
}
void EEPROMWrite(WORD addr, BYTE length, BYTE xdata *buf)
{
BYTE i;
for(i = 0; i < length; i++)
EEPROMWriteByte(addr++,buf[i]);
}
void EEPROMRead(WORD addr, BYTE length, BYTE xdata *buf)
{
BYTE i = 0;
BYTE j = 0;
BYTE xdata ee_str[2];
if(DB_Addr)
ee_str[i++] = MSB(addr);
ee_str[i++] = LSB(addr);
EZUSB_WriteI2C(I2C_Addr, i, ee_str);
EZUSB_ReadI2C(I2C_Addr, length, buf);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -