单片机C语言程序结构容易出问题的有一下几点

一、定义寄存器

定义全局变量unsigend num

在子程序里面改变num值,同时在中断里面也改变num值,最后得到意向不到的值,容易出错

若要这样改变  则定义变量前面加volatile  unsigend num 

二、中断调用

主程序调用子程序,同时中断函数里面也调用该子程序,这样容易出错

建议:中断里面不要调用子程序,

若要调用子程序则,则该子程序为唯一被中断调用。 

三、程序开头没加延时

开始的时候没加延时,很危险,上电电源电压波动较大,若一上电单片机就执行重要的命令的话,就容易出问题

特别是对内部eeprom的读写,读取数据出错,导致意向不到的后果。读写数据都需要比较稳定的电压。 

亲,上电延时个10毫秒,等到电压稳定后,再执行命令,不会影响正常工作,又有保障不是更好 

四、竞争与冒险

检测需加多次判断,以防干扰。

多次判断需要浪费一点时间,这个时间是在允许的范围内。

永不止步步 发表于11-14 10:27 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号