项目在最后的弄打印机程序了,项目中需要将体重数据与身高数据做成两个函数保存。然后调用两函数打印。可是主函数中单个eeprom程序能运行正常,一旦主程序里一起调用时,作显示测试时,发现两个函数显示的内容是一样的。这是怎么回事?
main()
{
.....
while(1)
{
Disp_tg(tg_eeprom_test()); //调用eeprom显示体重,后调用打印
Disp_sg(sg_eeprom_test()); //调用eeprom显示身高,后调用打印
}
}
以上是对eeprom调用时,作调试用。调试OK后,打印机好调用两函数。
//以下为两个eeprom程序,注意是两个字节的,可以显示四位数的。
u16 tg_eeprom_test()
{
u8 tg_h;
u8 tg_l;
if((tg_test()>60)&&(sg_test()>1300))
{ Delay3000ms();
if((tg_test()>60)&&(sg_test()>1300))
{
if(t_**==0)
{
sector_eraser(0x00, 0x00);
sector_eraser(0x00, 0x01);
byte_write(0x00, 0x00, tg_test()/10);
byte_write(0x00, 0x01, tg_test()%10);
t_**=1;
}
else
{
tg_h=byte_read(0x00, 0x00);
tg_l=byte_read(0x00, 0x01);
// tg_da=tg_h*10+tg_l;
t_**=0;
}
}
}
return tg_h*10+tg_l;
}
u16 sg_eeprom_test()
{
u8 sg_h;
u8 sg_l;
if((tg_test()>60)&&(sg_test()>1300))
{ Delay3000ms();
if((tg_test()>60)&&(sg_test()>1300))
{
if(s_**==0)
{
sector_eraser(0x02, 0x00);
sector_eraser(0x02, 0x01);
byte_write(0x02, 0x00, sg_test()/10);
byte_write(0x02, 0x01, sg_test()%10);
s_**=1;
}
else
{
sg_h=byte_read(0x02, 0x00);
sg_l=byte_read(0x02, 0x01);
// tg_da=tg_h*10+tg_l;
s_**=0;
}
}
}
return sg_h*10+sg_l;
}
哪位搞过stc12c5a60s2对两个扇区进行读写操作,我上面的程序是对两个字节的数据进行操作。但为何显示都是一样的数据呢?两个扇区的地址也不样,难不成这样也能把内容覆盖?
|