微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STC12C5204AD单片机 低压检测中断中写入EEPROM的问题?

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

时间:10-02 整理:3721RD 点击:
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个不同优先级的中断中操作的问题。现在在单位要源码的话 下班回家后附帖。

EEPROM在写入操作需要一定幅值电压,电压拉低是写入是有问题,硬件上得处理好,所以可能不是程序问题!

是的,是硬件问题,可以给你参考一下!可以在电源部分加一个大容量电容,可以在掉电的瞬间给单片机提供几毫秒的时间,这样单片机才有足够的时间做其他工作,否则低压情况下单片机很难稳定工作!

小编,能把你的程序发给我看看吗?QQ:1013511649

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top