导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教大家24c01读写问题[captainx]

 *第35414篇: 请教大家24c01读写问题

  
楼 主:captainx 2005年11月1日11:23
 请教大家24c01读写问题
void delay(uint s)                           
{while(s--);}

void Start_2401() {                        //2401开始信号
 SDA_2401 = 1;
 SCL_2401 = 1;
 SDA_2401 = 0;
 SCL_2401 = 0;

void Stop_2401() {                         //2401结束信号
 SDA_2401 = 0;
 SCL_2401 = 1;
 SDA_2401 = 1;
}

bit TestAck() {                            //检测反馈信号
  bit ack;
  SCL_2401 = 1;
  ack = SDA_2401;
  SCL_2401 = 0;
  return(ack);
}

Send_2401(uchar a) {                       //2401单字节发送
  uchar i;
  for(i=0;i  <8;i++) {
         SDA_2401 = (bit)(a&0x80);
         a   <  <= 1;
         SCL_2401 = 0;
         delay(3);
         SCL_2401 = 1;
    }
}

uchar Receive_2401() {                     //2401单字节接收
    uchar i;
    uchar ReceiveByte = 0;
    for(i=0;i  <8;i++) {
 SCL_2401 = 1;
 ReceiveByte = (ReceiveByte  <  <1)|SDA_2401;
 SCL_2401 = 0;
    }
 return ReceiveByte;
}

Write_2401(uchar input_data,uchar RomAddress) {
  uchar DeviceAddress = 0xa0;
  Start_2401();
    Send_2401(DeviceAddress);
   if(~TestAck())
   Send_2401(RomAddress);
   if(~TestAck())
   Send_2401(input_data);
    if(~TestAck()) 
  Stop_2401();
}

uchar Read_2401(uchar address) {
  uchar Dout;
  uchar DeviceAddress_Write = 0xa0;
  uchar DeviceAddress_Read  = 0xa1;
  Start_2401();
  Send_2401(DeviceAddress_Write);
  if(~TestAck())  
  Send_2401(address);
  if(~TestAck())
  Start_2401();
  Send_2401(DeviceAddress_Read);
  if(~TestAck())
  Dout = Receive_2401();
  Stop_2401();
  delay(10);
  return Dout;
}
请问大家:为什么
Write_2401(66,1);
a = Read_2401(1);可以读出来a=66
按说应该再次执行a = Read_2401(1);就算不write都应该可以读出地址1的数据(66),
可是不行,感觉好象没有真正的存进去,不知道是怎么回事呢?请大家帮忙看看程序有什么问题,谢谢大家了!

  
2楼:dreamhee 2005年11月8日11:33
 我想
你如果执行完a=Read_2401(1)时,直接执行a=Read_2401(1)可能有问题,如果你想读刚才的数据,就应先执行stop,在执行读
  
3楼:LIN-SAM 2005年11月8日19:38
 寫完後,要等幾個ms    ,或者是頁寫過程被復蓋了
寫完後,要等幾個ms    ,或者是頁寫過程被復蓋了

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

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


[上一篇主题]:请教关于usb接口芯片:PDIUSBD12与USBD9602优劣[求助]

[下一篇主题]:谁有K9F2808的资料,有的发一份给我好么?