unsigned char ReadIIC_24CXX(uint address,uchar ID_A1A0,uchar *p,uchar lenth)
{
unsigned char address_in_page; //page
unsigned char ddata=0;
unsigned char i=8;
address_in_page=(unsigned char)(address);
I2CStart();
// write_8bit(0xa0 | page); //
write_8bit(ID_A1A0);
ACK();
write_8bit(address> > 8);
ACK();
//Èç¹ûÊÇ24C01£24C16£¬µØÖ·ÎªÒ»×Ö½Ú;
write_8bit(address_in_page);
ACK(); //ÒÔÉÏÊÇÒ»¸ö¡°ÑÆ¡±Ð´²Ù×÷£¬Ï൱ÓÚÉèÖõ±Ç°µØÖ·
// SCL=1;
// SDA=0;_nop_();
// SDA=1; //STOPÍ£Ö¹Ðźſɼӿɲ»¼Ó
// delay();ÑÓʱ¿É¼Ó¿É²»¼Ó
I2CStart();
// write_8bit(0xa1); //д´ÓµØÖ·£¬ÖÃΪ¶Áģʽ
ID_A1A0 = ID_A1A0 + 1;
write_8bit(ID_A1A0);
ACK();
for(;lenth> 0;lenth--)
{
while (i--)
{
SDA=1;
ddata < <=1;
SCL=0;_nop_();
SCL=1;
if (SDA) ddata|=0x01;
}
if(lenth> 1) SendAck();
*p = ddata;
p++;
i = 8;
}
SendNotAck();
I2CStop();
delay();
return ddata;
}