[STM8] STM8S105C6芯片内部EEPROM使用问题

[复制链接]
2649|14
 楼主| doublesan 发表于 2016-7-23 09:32 | 显示全部楼层 |阅读模式
大家好,我现在用一块STM8S105C6做一款简单的产品,其中驱动了一块段码LCD,在使用内部EEPROM时,总是会打断我的TIMER2中断,导致LCD闪烁,大家对内部EEPROM的使用有什么好的建议吗?本人觉得太慢了,我的TIMER2中断时间是1ms都能被严重的打断,求解!!谢谢!
sting_yang 发表于 2016-7-23 10:25 | 显示全部楼层
jcdzxh 发表于 2016-7-23 10:34 来自手机 | 显示全部楼层
字节写不用等完成
 楼主| doublesan 发表于 2016-7-23 11:03 | 显示全部楼层
您好,就是说我按字节去写就不会打断中断了是吗?目前我的EEPROM功能是放在主函数里去执行的!
 楼主| doublesan 发表于 2016-7-23 11:04 | 显示全部楼层

您好,规格书描述的是6.6ms写进去,确实太慢,我目前的核心问题是启用了EEPROM,为什么会打断我的中断,按理说中断是有最高优先级的。
3htech 发表于 2016-7-23 11:04 | 显示全部楼层
1ms中断一次,10次10ms,利用这个时间来跨过6.6ms的编程时间。至于一次写入多少字节,看你应用。
 楼主| doublesan 发表于 2016-7-23 11:58 | 显示全部楼层
就是说在中断内计数十次触发一次EEPROM?我只要相应了EEPROM,就会打断我的中断,与多少次中断触发一次EEPROM没有太大关系。
mmuuss586 发表于 2016-7-23 12:18 | 显示全部楼层
写FLASH时间是比较长的,不要经常写;
写的时候最好不要有其它操作,防止丢数据;
 楼主| doublesan 发表于 2016-7-23 16:17 | 显示全部楼层
现在要求同时保存数据,又不影响中断的执行,您有没有什么好的方法呢?
457344370 发表于 2016-7-23 17:47 来自手机 | 显示全部楼层
方法就那么几种1.将显示的函数放到RAM里运行  2.加外部E2  3.换芯片  4.换显示方案
防滑销钉 发表于 2016-7-23 19:03 | 显示全部楼层
doublesan 发表于 2016-7-23 11:04
您好,规格书描述的是6.6ms写进去,确实太慢,我目前的核心问题是启用了EEPROM,为什么会打断我的中断, ...

据说STM8内部的EEPROM本质上还是FLASH,所以说在写EEPROM的同时(也就是写FLASH),内核无法从FLASH中读取程序,也就是说内核是停止的。
而且EEPROM的写操作也不要太频繁,能否通过降低写EEPROM的频率来减少LCD的闪烁呢?
xyz549040622 发表于 2016-7-23 21:37 | 显示全部楼层
在操作eprom的过程中,是要关闭所有中断的。
 楼主| doublesan 发表于 2016-7-24 20:12 | 显示全部楼层
防滑销钉 发表于 2016-7-23 19:03
据说STM8内部的EEPROM本质上还是FLASH,所以说在写EEPROM的同时(也就是写FLASH),内核无法从FLASH中读 ...

说的有道理,我现在通过判断条件去减少写EEPROM的次数,但还是会导致LCD闪烁,所以目前没有什么更高的方法。用DSP习惯了,有些思维定式。
防滑销钉 发表于 2016-8-15 21:46 | 显示全部楼层
本帖最后由 防滑销钉 于 2016-8-15 21:47 编辑
doublesan 发表于 2016-7-24 20:12
说的有道理,我现在通过判断条件去减少写EEPROM的次数,但还是会导致LCD闪烁,所以目前没有什么更高的方 ...

不知道你每次需要写EEPROM的数据量是多少?如果数据量过大的话,可以通过写block的方式来写EEPROM(写一个block的时间与写一个字节的时间是相同的),不过写block的时间也要6.6ms,在这6.6ms时间内,可能还是无法响应TIMER的1ms中断……。
仙景 发表于 2016-8-16 00:06 | 显示全部楼层
我记得,在操作eprom的过程中,是要关闭所有中断的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

54

帖子

1

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