[讨论] 关于 I2c 总线程序编写的一些问题

五加一等于六   2014-5-4 15:41 楼主
首先使用I2c 数据总线通信要理解其时序图,楼主是使用I2c总线建立 C51芯片与 E2Prom AT24C02 之间的通信,通信时序图如截图01,起始程序的时序图如截图02,如下所示是起始程序: void delay() {;;} void start () // To start { sda=1; delay(); scl=1; delay(); sda=0; delay(); } 楼主的问题是 delay函数的调用,若我换成 void delay () { unsigned int i; for (i=0;i=70;i++); } 程序就不能正常运行了,不知道是什么原因? 本帖最后由 五加一等于六 于 2014-5-4 15:42 编辑
  • 截图01
  • 截图02

回复评论 (8)

延时时间太长了·····
点赞  2014-5-4 15:43
for (i=0;i=70;i++);
死循环?
点赞  2014-5-4 16:08
for (i=0;i=70;i++);这是什么意思
点赞  2014-5-4 16:23
for (i=0;i=70;i++);

红字,估计应该是<或者<=
点赞  2014-5-5 22:44
引用: mylsf 发表于 2014-5-4 16:08
for (i=0;i=70;i++);
死循环?

笔误,我回头再检查检查。。。
点赞  2014-5-6 16:57
引用: motodefy 发表于 2014-5-4 15:43
延时时间太长了·····

不好意思,貌似笔误造成 程序无法正常运行,那天编了一天程序,估计搞懵了。今天我找到原程序将 delay 改成如下
void delay()
{
     uint i = 0;
     for (i=70;i>0;i--);
}

程序可以运行,没有问题,谢谢老兄跟贴讨论。
点赞  2014-5-6 17:12
顶顶顶
点赞  2014-5-6 17:13
引用: 五加一等于六 发表于 2014-5-6 17:12
不好意思,貌似笔误造成 程序无法正常运行,那天编了一天程序,估计搞懵了。今天我找到原程序将 delay 改 ...

我就是这个意思···死在这了
点赞  2014-5-6 17:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复