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

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

  
楼 主:kettypeng 2004年4月16日11:50
 请问用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
}

  
2楼:kettypeng 2004年4月16日13:17
 有人知道么?
有人知道么?
  
3楼:guest 2004年4月16日14:10
 再写一个字节下去后有ACK就是写时序完成了
  
4楼:kettypeng 2004年4月16日14:20
 试过了,可是总是停在循环里面出不来
试过了,可是总是停在循环里面出不来

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:如何利用计算机通过串口来控制任何带红外遥控的播放设备

[下一篇主题]:我想做一个完全脱机的LED条形屏幕,流水显示汉字,请高手指点: