STC12C5204AD单片机 低压检测中断中写入EEPROM的问题?

2019-07-16 05:17发布

STC12C5204AD单片机 低压检测中断中写入EEPROM的问题?
程序中赋值一个 全局变量 volatile cnt,
有2个中断 一个外部中断(优先级低) 一个低压检测中断(优先级高)。
程序流程是 在下降沿检测外部中断中 cnt++ 外部脉冲计数,
主程序通过数码管while(1){display(cnt)},
低压检测中断中将cnt的值写入eeprom,
在主程序中while(1)之前 读取eeprom中低压检测中写入的值 赋与 cnt。
现在问题如下,在低压检测中如果写入 write(0x0000,1),在主程序中cnt=read(0x0000);while(1){display(cnt)},在掉电后重新上电时,能正常显示 eeprom中的值----1,
但是如果在低压检测中写入write(0x0000,cnt),同时给板子输入几个脉冲(比如10个)板子显示10,但在掉电后再次上电后显示---0(正常应该显示10),不知道为何会出现这样的问题。所有变量和函数返回值 都采用了 unsigned char。求大神解答!
简而言之就是一个全局变量cnt 在2个不同优先级的中断中操作的问题。现在在单位要源码的话 下班回家后附帖。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lstcspring
1楼-- · 2019-07-16 11:03
EEPROM在写入操作需要一定幅值电压,电压拉低是写入是有问题,硬件上得处理好,所以可能不是程序问题!
879662894
2楼-- · 2019-07-16 14:07
Tmacfang
3楼-- · 2019-07-16 16:37
 精彩回答 2  元偷偷看……
Tmacfang
4楼-- · 2019-07-16 19:57
楼主,能把你的程序发给我看看吗?QQ:1013511649

一周热门 更多>