大家好!最近遇到一个很棘手的问题,有点想不明白,代码如下:
//函数声明
//进入main函数
while(1)
{
eewrlong(word_addr,target); //调用E2PROM写数据子函数
delay(10);
eerdlong(word_addr); // 调用读数据函数
delay(10);
}
下面是eewrlong和eerdlong函数的定义
。。。
。。。
。。。
问题:当在while循环中的delay函数处各设一个断点时,发现读出的数据与写出的数据不用(从读出的数据看来,写数据函数似乎没有执行或者没有写进去);但是如果使用单步(F5)调试并且在eewrlong子函数内部设置断点,运行完整个流程,再执行调用eerdlong子函数,发现读出的数据与写入的数据一致。
注:MCU的时钟是1MHz。
请大侠们帮忙分析一下是什么原因啊,我已经折腾了好多天了都无果,正郁闷中。。。 |