首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

pcf8563 rtc解决办法

2012-09-12 
pcf8563 rtc为什么我rtc第一次读到的数据是对的,但是在键盘上乱按几个键,就开始乱变了,虽然我的程序中有循

pcf8563 rtc
为什么我rtc第一次读到的数据是对的,但是在键盘上乱按几个键,就开始乱变了,虽然我的程序中有循环,但是应该只是重新读一次吧,还不至于错吧!!!
程序程序结构是:
while(1)
{
  pcf8563_operation() ;//这里包括了先写后读
}

还有就是:
unsigned char rtc_read(unsigned char address) 

  unsigned char d; 
  I2C_Start(); 
  Write_I2C_Byte(0xa2); 
  Write_I2C_Byte(address); 
  I2C_Start(); 
  Write_I2C_Byte(0xa3); 
  d=Read_I2C_Byte(); 
  d=d>>1; //这里的移位有啥作用,搞不懂,我没有用到,只是看到网上的程序都有这个操作
  I2C_Stop(); 
  return d; 


希望大神们可以帮小弟的忙,谢谢!!

[解决办法]
uint8_t SoftI2C_PCF8563_ByteRead(uint8_t rtc_addr)
{
uint8_t rev_data;

//SoftIICInit();

//开始信号
IICStart();

IICWrite(0xA2);
IICTestAck();

IICWrite(rtc_addr);
IICTestAck();

//开始信号
IICStart();

IICWrite(0xA3);
IICTestAck();

IICRead(&rev_data);
IICNoAck();

//结束信号
IICStop();
return rev_data;
}

我这里没有你那个多余的动作,呵呵
[解决办法]
单从LZ给的那个循环,无法得知道,你为什么出错。。。

热点排行