导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请问用PIC写EEPROM24LC16时,如何判断write

* 52749: 请问用PIC写EEPROM24LC16时,如何判断write cycle结束呀?(附源程序)

   kettypeng 
kettypeng发表的帖子 

 请问用PIC写EEPROM24LC16时,如何判断write cycle结束呀?(附源程序)
连续执行写操作的时候总是不行,估计是eeprom的write cycle的问题。除了延时之外,有什么节约时间的方法么?请高手指点。
eeprom write的子程序如下所示,还应该作什么修改那?

void Idle(void)        //I2C IDLE FUNCTION
{
    while((SSPCON2 & 0x1F)|(STAT_RW))
    continue;
}


void write_eeprom(char word, char data_address)
{
    SEN = 1;                         //START ENABLED
    while(SEN);                      //WAIT UNTIL START IS OVER
    SSPBUF = 0b10100000;                //CONTROL BYTE
    Idle();                            //ENSURE MODULE IS IDLE
    if(!ACKSTAT);                     //ack
    else
    return;

    SSPBUF=data_address;               //ENSURE MODULE IS IDLE
    Idle();
    if(!ACKSTAT);  
    else
       return ;
    SSPBUF = word; //DATA BYTE (ZONES: 1,2,3 or 4)
    Idle(); //ENSURE MODULE IS IDLE
    if(!ACKSTAT); //LOOK FOR ACK
    else
         return ;
    PEN = 1; //STOP ENABLED
    while(PEN); //WAIT UNTIL STOP IS OVER
}

发表时间:2004年4月16日11:50:30

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  52754.[详细]有人知道么?
摘要:有人知道么?......(12字)
- [kettypeng][737次] 2004年4月16日

  52759.[详细]再写一个字节下去后有ACK就是写时序完成了
摘要:......(无内容)
- [guest][795次] 2004年4月16日

  52760.[详细]试过了,可是总是停在循环里面出不来
摘要:试过了,可是总是停在循环里面出不来......(34字)
- [kettypeng][818次] 2004年4月16日

[上一篇帖子]:如何利用计算机通过串口来控制任何带红外遥控的播放设备如何利用计算机通过串口来控制任何带红外遥控的播放
[下一篇帖子]:我想做一个完全脱机的LED条形屏幕,流水显示汉字,请高手指点:我想做一个完全脱机的LED条形屏幕,流