打印

c8051F410单片机写flash问题

[复制链接]
3876|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
单片机系统用到数码管显示,显示刷新有定时器中断控制。现在的问题是,每次写flash保存数据的时候都会出现数码管一闪的现象,查阅c8051F410的使用手册得知:在FLASH写/擦除操作期间,程序停止执行。所以想问一下怎么解决这个一闪的问题?

相关帖子

沙发
ningling_21| | 2011-12-29 10:23 | 只看该作者
本帖最后由 ningling_21 于 2011-12-29 10:25 编辑

写FLASH必定关中断,解决办法-减少关中断时间,将写入FLASH的数据尽量减少,或分多次写入... 或改用外部EEPROM保存数据...

使用特权

评论回复
板凳
icecut| | 2011-12-29 10:30 | 只看该作者
写片内flash吧,片外的就不会有这种问题.接口都是异步的.

这个只能处理好擦除时间和写入时间,进行分块操作.把一个长时间化解为几个短时间.
把时间让给显示代码执行.

使用特权

评论回复
地板
ayb_ice| | 2011-12-29 11:11 | 只看该作者
本帖最后由 ayb_ice 于 2011-12-29 11:13 编辑

这好办啊
1: 尽量一次不要写太多的数据
2: 定时中断在传递显示数据后,写FLASH,也就是合理的将写FLASH操作插入定时中断中
....

-----------------------
|                              |
中断开始  TA, TB          中断结束
TA=显示任务
TB=FLASH写任务

使用特权

评论回复
5
yan2626156|  楼主 | 2011-12-29 18:23 | 只看该作者
写一个字节都是这样,4楼的方法也试过了,还是解决不了。纠结了:dizzy:

使用特权

评论回复
6
ayb_ice| | 2011-12-30 09:46 | 只看该作者
写一个字节都是这样,4楼的方法也试过了,还是解决不了。纠结了:dizzy:
yan2626156 发表于 2011-12-29 18:23

怎么可能呢,你写一个字节需要多少时间
最多100US,而显示刷新周期至少1000US

使用特权

评论回复
7
ayb_ice| | 2011-12-30 10:20 | 只看该作者
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复

未命名.JPG (51.81 KB )

未命名.JPG

使用特权

评论回复
8
yan2626156|  楼主 | 2011-12-30 11:37 | 只看该作者
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复 ...
ayb_ice 发表于 2011-12-30 10:20
问题是flash在每次写之前,都要先擦除,而且硬件电路改不了了,已经量产了

使用特权

评论回复
9
ayb_ice| | 2011-12-30 13:22 | 只看该作者
我已经说的清楚了

使用特权

评论回复
10
icecut| | 2011-12-30 13:42 | 只看该作者
支持9楼...擦除也是有算法的.你可能搞不定.可能你用的烂算法

使用特权

评论回复
11
t.jm| | 2011-12-30 14:25 | 只看该作者
这个问题应该好解决,把动作步骤分解就好了,
擦除FLASH可能需要时间,但是可以发完擦除命令后的等待时间里就可以开中断了,
关键是要时序部分关中断就可以了。

使用特权

评论回复
12
yan2626156|  楼主 | 2011-12-30 14:50 | 只看该作者
擦除也有算法,指点一下,我只是按照使用手册的步骤来擦除,而且单执行擦除就会一闪了。 10# icecut

使用特权

评论回复
13
yan2626156|  楼主 | 2011-12-30 14:54 | 只看该作者
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复 ...
ayb_ice 发表于 2011-12-30 10:20
可能是我没说清楚,那些数据是一发生变化就要保存的。

使用特权

评论回复
14
ayb_ice| | 2011-12-30 15:12 | 只看该作者
先保存在RAM里不一样吗,和FLASH里有什么区别

使用特权

评论回复
15
yan2626156|  楼主 | 2011-12-30 15:17 | 只看该作者
没有大电容,突然掉电了,我怎么去找回数据给用户啊 14# ayb_ice

使用特权

评论回复
16
ayb_ice| | 2011-12-30 15:25 | 只看该作者
那只能恢复默认数据了
如果必须要实时更新数据到FLASH里面,又不改硬件,那没有办法解决
内核的特性在那里,是不可能因你而改变的,只能改变自己

使用特权

评论回复
17
yan2626156|  楼主 | 2011-12-30 15:27 | 只看该作者
楼上说的也是,谢谢了,解决问题的方法要换一下了,谢谢了

使用特权

评论回复
18
dengm| | 2011-12-30 17:51 | 只看该作者
关机时 or 下半夜  写,  注意监控电源电压

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

72

帖子

1

粉丝