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

pcf8563 rtc解决方案

2012-12-30 
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给的那个循环,无法得知道,你为什么出错。。。

热点排行