找回密码
 立即注册
查看: 1540|回复: 31

请教下这位老哥说的,可以减少eeprom的磨损.

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2024-8-2 12:23:12 | 显示全部楼层 |阅读模式

这位老哥说的 储存个指针.然后让eeprom 逐步往后写,写到最后(STC8H1K08) 0FFFh 后,调回0000j 继续循环.
这个具体代码怎么操作,有人用过吗?  可否提供下代码,指导下?

截图202408021220257016.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2024-8-2 13:07:07 | 显示全部楼层
wnag*** 发表于 2024-8-2 12:56
我用过,我是用EEPROM储存状态,char类型就够了,所以程序初始化中读取EEPROM,当读取到默认值0XFF时,取上 ...

代码可以发一份吗?
手电的开关次数有点多的
要节约用好eeprom
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-8-2 13:19:57 | 显示全部楼层
vb2*** 发表于 2024-8-2 13:07
代码可以发一份吗?
手电的开关次数有点多的
要节约用好eeprom

关开关什么事?
EEProm不是有改变才写入吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-2 13:27:27 | 显示全部楼层
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

点评

如果指针==3584,指针=0,擦除所有扇区 寿命即可变为3.5亿次  详情 回复 发表于 2024-8-2 13:29
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-2 13:29:08 | 显示全部楼层
Debu*** 发表于 2024-8-2 13:27
STC8H1K08,固定8K CODE,4K EEPROM,8个扇区,4096字节
可以第0扇区作为位计数器,bit有多少个0代表指针指 ...

如果指针==3584,指针=0,擦除所有扇区
寿命即可变为3.5亿次
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-2 13:34:22 | 显示全部楼层
wnag*** 发表于 2024-8-2 13:31
这样算下来,就是不做EEPROM磨损功能,也够咱们用了

这就是磨损均衡
DebugLab
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2024-8-2 13:46:02 来自手机 | 显示全部楼层
Lkck8210 发表于 2024-8-2 13:19
关开关什么事?
EEProm不是有改变才写入吗?

要换挡啊,换挡就会有写入
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:350
  • 最近打卡:2025-05-01 00:32:14
已绑定手机

130

主题

1520

回帖

1855

积分

金牌会员

积分
1855
发表于 2024-8-2 13:48:04 来自手机 | 显示全部楼层
DebugLab 发表于 2024-8-2 13:27
STC8H1K08,固定8K CODE,4K EEPROM,8个扇区,4096字节
可以第0扇区作为位计数器,bit有多少个0代表指针指 ...

这个牛,,{:5_284:}
能提供代码吗?

点评

没有,这段文字直接翻译成C语言就是代码了  详情 回复 发表于 2024-8-2 14:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-2 14:35:40 | 显示全部楼层
vb2*** 发表于 2024-8-2 13:48
这个牛,,
能提供代码吗?

没有,这段文字直接翻译成C语言就是代码了
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-8-2 15:16:36 | 显示全部楼层
vb2*** 发表于 2024-8-2 13:46
要换挡啊,换挡就会有写入

但不会每次开机都换档吧?
有换档才在关机时更新EEProm

点评

那还要做掉电检测,需要使用比较器,还需要大电容储能  详情 回复 发表于 2024-8-2 20:30
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 23:56 , Processed in 0.118148 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表