lin28 发表于 2022-9-20 11:41:13

EEPROM存储运行累积时间,有什么矫正技术避免很离谱错误数据?

单片机上电就先读取之前存储的累积时间然后一小时就存一次eeprom,这个累积数值肯定是逐渐递增,个别发现误差很离谱。明显是错误的数据。比如用几天而已竟然累积出几百天了。

请问有没有存储矫正办法。多份存储 对比?目前只存一份数据。

68336016 发表于 2022-9-20 11:42:57

这哪里是误差,明显是错误。这时候不是应该找出原因么

kv2004 发表于 2022-9-20 12:04:00

数据有问题不查哪里出的问题数据,而去考虑修饰数据。和头疼堵嘴,脚疼堵嘴,哪疼都堵嘴一样。

liandao 发表于 2022-9-20 12:33:39

是不是mcu正在写eeprom时,出现掉电了?于是eeprom里写入的数据不完整?

acmilannast 发表于 2022-9-20 12:44:08

电表里做法:数据存多份,数据加校验

ackyee 发表于 2022-9-20 12:56:46

肯定是代码溢出问题   EEPROM 1小时一次 不会出问题的

lin28 发表于 2022-9-20 14:13:13

ackyee 发表于 2022-9-20 12:56
肯定是代码溢出问题   EEPROM 1小时一次 不会出问题的
(引用自6楼)

可是关键不是每个都出问题啊。如果软件出问题应该是很多。 比如100个才出1-2个

kv2004 发表于 2022-9-20 15:02:14

lin28 发表于 2022-9-20 14:13
可是关键不是每个都出问题啊。如果软件出问题应该是很多。 比如100个才出1-2个 ...
(引用自7楼)

应该,应该去掉2月29日,最快一千四百多天才出现一次,有时候两千天也不出现一次。

laujc 发表于 2022-9-20 15:15:43

怀疑你的计时有问题

lin28 发表于 2022-9-20 16:45:04

laujc 发表于 2022-9-20 15:15
怀疑你的计时有问题
(引用自9楼)

只是个简单的计数,int类型。一小时+1一次。不做时间处理的。

lyl1070 发表于 2022-9-20 16:53:41

直接修改计数时基,提速测试不就快了。
很简单的事情。

lin28 发表于 2022-9-20 17:26:27

lyl1070 发表于 2022-9-20 16:53
直接修改计数时基,提速测试不就快了。
很简单的事情。
(引用自11楼)

做过 没问题。就是很小概率出现。 已经开启了低于VOBD 禁止编程。

lin28 发表于 2022-9-20 18:08:13

acmilannast 发表于 2022-9-20 12:44
电表里做法:数据存多份,数据加校验
(引用自5楼)

有没有具体的做法 可以分享下嘛

就是不知道什么时候错的,如果是写入的时候错的 那校验也是对的哈。

智涅 发表于 2022-9-20 19:36:10

只用1个地址存?不是用多个空间循环擦写以提高寿命的吗?
多个空间循环擦写,通过连续0xff判断最新数据位置,因为你是累加方式,再简单判断下就知道数据有无错了吧

Landmark 发表于 2022-9-20 19:43:32

楼主是用mcu内部的data flash来存储数据的吗?如果是的话就要注意,要规避比较多地方的

lin28 发表于 2022-9-20 20:13:23

Landmark 发表于 2022-9-20 19:43
楼主是用mcu内部的data flash来存储数据的吗?如果是的话就要注意,要规避比较多地方的 ...
(引用自15楼)

N76E003 用最后2页做eeprom

lin28 发表于 2022-9-21 13:00:31

智涅 发表于 2022-9-20 19:36
只用1个地址存?不是用多个空间循环擦写以提高寿命的吗?
多个空间循环擦写,通过连续0xff判断最新数据位置 ...
(引用自14楼)

2个字节 ,int数据。 寿命10万次足够了哈。没做多处存储! 难道写入flash之前,先读取出来对比 再写入?

智涅 发表于 2022-9-21 13:55:48

lin28 发表于 2022-9-21 13:00
2个字节 ,int数据。 寿命10万次足够了哈。没做多处存储! 难道写入flash之前,先读取出来对比 再写入? ...
(引用自17楼)

"难道写入flash之前,先读取出来对比 再写入?"做滚动存储,你要判断之前写到哪里,肯定要先读,通过判断是不是连续0xff就可以了

shiva_shiva 发表于 2022-9-21 14:11:54

数据加校验,你至少要知道出错的原因是数据不完整还是完整但是错了。

lin28 发表于 2022-9-21 14:40:03

智涅 发表于 2022-9-21 13:55
"难道写入flash之前,先读取出来对比 再写入?"做滚动存储,你要判断之前写到哪里,肯定要先读,通过判 ...
(引用自18楼)

可以指定地址写入和读取的 。 出错时候是很大数据,现在怀疑是有某个字节变FF了,应该是几十的数据,突然变成65532 这样子。怎么会变FF呢 怎么避免 或者矫正回来呢
页: [1]
查看完整版本: EEPROM存储运行累积时间,有什么矫正技术避免很离谱错误数据?