其实外置的E2PROM也会因为频繁的上断电或电压不稳定,偶尔也会出现丢码问题,而且跟存储位置没什么关系。
至于为什么会总在前后几个字节,会不会是如此:一般来说,变量在起始阶段是为0,而单片机的工作电压一般较高,E2PROM的工作可以低到2V左右,由于这两个器件的工作电压不一致,假设由于一种原因造成单片机电压跌到一定值时,这个值能保证E2PROM工作,但无法保证单片机工作了,而且波动非常不稳,此时再假设程序已经跑飞,刚好落在E2PROM操作段,加上初值变量一般是为0,如此就把地址0的修改了。而打开BOD后,电压低于4。5V(PIC的好像是这个值)后就会一直保持复位,程序被锁死了,所以就不会跑飞到E2PROM操作段。至于为什么末地址也会丢码似乎无法用上面的方法说明,我也不太清楚,我也没碰到过末地址被修改的。:lol乱说一通!!! |