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个不同优先级的中断中操作的问题。现在在单位要源码的话 下班回家后附帖。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>