请教下这位老哥说的,可以减少eeprom的磨损.
这位老哥说的 储存个指针.然后让eeprom 逐步往后写,写到最后(STC8H1K08) 0FFFh 后,调回0000j 继续循环.
这个具体代码怎么操作,有人用过吗?可否提供下代码,指导下?
wnagming 发表于 2024-8-2 12:56
我用过,我是用EEPROM储存状态,char类型就够了,所以程序初始化中读取EEPROM,当读取到默认值0XFF时,取上 ...
代码可以发一份吗?
手电的开关次数有点多的
要节约用好eeprom vb2002 发表于 2024-8-2 13:07
代码可以发一份吗?
手电的开关次数有点多的
要节约用好eeprom
关开关什么事?
EEProm不是有改变才写入吗? STC8H1K08,固定8K CODE,4K EEPROM,8个扇区,4096字节
可以第0扇区作为位计数器,bit有多少个0代表指针指向其他7个扇区的位置,共4096位
其他7个扇区共3584字节,最高位设为标志位,其他7位能保存128个状态
上电读取EEPROM第0扇区位域的指针,寻址到指定字节,读取最高位
如果最高位为0,说明数据有效,使用该字节低7位数据
如果最高位为1,说明该数据无效,读出来,数据+1切换下一个状态,EEPROM第0扇区位域的指针+1(按顺序再写个0进去),下一个状态的数据写入这个地址
500ms后,当前地址对应的数据最高位写为0 DebugLab 发表于 2024-8-2 13:27
STC8H1K08,固定8K CODE,4K EEPROM,8个扇区,4096字节
可以第0扇区作为位计数器,bit有多少个0代表指针指 ...
如果指针==3584,指针=0,擦除所有扇区
寿命即可变为3.5亿次 wnagming 发表于 2024-8-2 13:31
这样算下来,就是不做EEPROM磨损功能,也够咱们用了
这就是磨损均衡 Lkck8210 发表于 2024-8-2 13:19
关开关什么事?
EEProm不是有改变才写入吗?
要换挡啊,换挡就会有写入 DebugLab 发表于 2024-8-2 13:27
STC8H1K08,固定8K CODE,4K EEPROM,8个扇区,4096字节
可以第0扇区作为位计数器,bit有多少个0代表指针指 ...
这个牛,,{:5_284:}
能提供代码吗? vb2002 发表于 2024-8-2 13:48
这个牛,,
能提供代码吗?
没有,这段文字直接翻译成C语言就是代码了 vb2002 发表于 2024-8-2 13:46
要换挡啊,换挡就会有写入
但不会每次开机都换档吧?
有换档才在关机时更新EEProm