00001
00002
00003
00004 #ifndef heeprom
00005 #define heeprom
00006
00007 #define I2CSDAOUT FIODIR2 |= 0x4
00008 #define I2CSDAIN FIODIR2 &= 0xFB
00009 #define I2CSCLOUT FIODIR2 |= 0x2
00010 #define I2CSCLIN FIODIR2 &= 0xFD
00011 #define I2CSDA1 FIOSET2 = 1<<2
00012 #define I2CSDA0 FIOCLR2 = 1<<2
00013 #define I2CSCL1 FIOSET2 = 1<<1
00014 #define I2CSCL0 FIOCLR2 = 1<<1
00015 #define I2CSDADAT (FIOPIN2 >>2)&0x1
00016 #define I2CSCLDAT (FIOPIN2 >>1)&0x1
00017
00018 void init_I2C(void);
00019
00020
00021
00022
00023 typedef unsigned char (*funcGetByte)(unsigned long offset);
00024
00025
00026
00027 typedef unsigned char (*funcPutByte)(unsigned long userdata, unsigned long offset, unsigned char b);
00028
00029 unsigned char start_I2C_EE_write(unsigned int address);
00030 unsigned char i2c_rx (int nak, int send_stop);
00031 unsigned char i2c_tx(int send_start, int send_stop, unsigned char byte) ;
00032
00033 unsigned char read_I2C_EE(unsigned int address, unsigned char*buff, unsigned int num);
00034
00035 unsigned char read_I2C_EE_stream(unsigned long address, unsigned long num,
00036 funcPutByte fpb, unsigned long userdata,
00037 unsigned long *pChksum);
00038
00039 unsigned int write_I2C_EE_stream(unsigned int address, funcGetByte fgb,
00040 unsigned int num, unsigned long *chkAdd);
00041
00042 unsigned int write_I2C_EE(unsigned int address, unsigned char*buff, unsigned int num);
00043 unsigned int write_I2C_EE_byte(unsigned int address, unsigned char b);
00044
00045 #endif