c8051F410单片机写flash问题

[复制链接]
 楼主| yan2626156 发表于 2011-12-29 10:19 | 显示全部楼层 |阅读模式
单片机系统用到数码管显示,显示刷新有定时器中断控制。现在的问题是,每次写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写任务
 楼主| yan2626156 发表于 2011-12-29 18:23 | 显示全部楼层
写一个字节都是这样,4楼的方法也试过了,还是解决不了。纠结了:dizzy:
ayb_ice 发表于 2011-12-30 09:46 | 显示全部楼层
写一个字节都是这样,4楼的方法也试过了,还是解决不了。纠结了:dizzy:
yan2626156 发表于 2011-12-29 18:23

怎么可能呢,你写一个字节需要多少时间
最多100US,而显示刷新周期至少1000US
ayb_ice 发表于 2011-12-30 10:20 | 显示全部楼层
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| yan2626156 发表于 2011-12-30 11:37 | 显示全部楼层
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复 ...
ayb_ice 发表于 2011-12-30 10:20
问题是flash在每次写之前,都要先擦除,而且硬件电路改不了了,已经量产了
ayb_ice 发表于 2011-12-30 13:22 | 显示全部楼层
我已经说的清楚了
icecut 发表于 2011-12-30 13:42 | 显示全部楼层
支持9楼...擦除也是有算法的.你可能搞不定.可能你用的烂算法
t.jm 发表于 2011-12-30 14:25 | 显示全部楼层
这个问题应该好解决,把动作步骤分解就好了,
擦除FLASH可能需要时间,但是可以发完擦除命令后的等待时间里就可以开中断了,
关键是要时序部分关中断就可以了。
 楼主| yan2626156 发表于 2011-12-30 14:50 | 显示全部楼层
擦除也有算法,指点一下,我只是按照使用手册的步骤来擦除,而且单执行擦除就会一闪了。 10# icecut
 楼主| yan2626156 发表于 2011-12-30 14:54 | 显示全部楼层
请看图
必须保证写数据时不要去擦除扇区操作,或者尽量减少这种操作,如果必须每次擦除,没有更好办好,只能用LED硬件驱动器了
比如循环利用全部扇区,或者关机时一次写进去,开机时恢复 ...
ayb_ice 发表于 2011-12-30 10:20
可能是我没说清楚,那些数据是一发生变化就要保存的。
ayb_ice 发表于 2011-12-30 15:12 | 显示全部楼层
先保存在RAM里不一样吗,和FLASH里有什么区别
 楼主| yan2626156 发表于 2011-12-30 15:17 | 显示全部楼层
没有大电容,突然掉电了,我怎么去找回数据给用户啊 14# ayb_ice
ayb_ice 发表于 2011-12-30 15:25 | 显示全部楼层
那只能恢复默认数据了
如果必须要实时更新数据到FLASH里面,又不改硬件,那没有办法解决
内核的特性在那里,是不可能因你而改变的,只能改变自己
 楼主| yan2626156 发表于 2011-12-30 15:27 | 显示全部楼层
楼上说的也是,谢谢了,解决问题的方法要换一下了,谢谢了
dengm 发表于 2011-12-30 17:51 | 显示全部楼层
关机时 or 下半夜  写,  注意监控电源电压
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

72

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

1

主题

72

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部