本帖最后由 海川先生 于 2012-10-8 21:54 编辑
256字节的eeprom存储器(最初内容全0),每5个字节划分成一个块用来存贮一条信息(这条有效信息的首字节不是0)。存储前得先看看那个块是空白的,保证不能把原有的数据覆盖掉,所以有了下面的代码。
我想找到一个空白块就马上退出循环,并返回空白块的首地址。但这段代码不能在找到一个空白块就立马退出,它实际运行50次,而我初始化EEPROM中的内容全是0,照我的想法这段代码的预期功能是,循环执行一次就退出并返回值为0,怎么改能做到呢
uchar search_blank() //寻找空白存储空间
{
uchar i,head;
for(i=0;i<254;i+=5)
{
read_1byte(i,head);//读出i地址空间中的数据送给head
if(!head)//如果该字节数据为0,说明该字节为首的空间为空
break;
}
return(i);
} |