标题: 关于单片机中怎样使中断程序中的变量和主函数中的变量同步变化 [打印本页]

作者: Proceed    时间: 2019-9-10 20:41
标题: 关于单片机中怎样使中断程序中的变量和主函数中的变量同步变化
我原本是想在一个单片机定时器的中断服务处理程序中的if条件中使用一个变量m,当m是10的话就会执行这一个中断程序,if(m==10){ },m在主函数中的次数是在不断增加的。一开始显示中断程序中的m未定义,我放在了main()之前就没有问题了。但是不知道如果m的定义放在main()函数之前,m在主函数中次数增加的话,在中断程序中会不会也跟随着增加。。。。。。。
如果有大佬知道的话,请指点我一下。


作者: 没有你    时间: 2019-9-10 21:33
如果中断服务程序和main()函数在同一个.C文件,就没问题
作者: tyrl800    时间: 2019-9-10 22:06
全局变量就没有问题,跟着变化
作者: 928320204    时间: 2019-9-10 22:44
2种办法,1是你把你的程序贴出来看看,2是将m定义成一个绝对地址,并将该区域保留。希望对你有帮助。
作者: csmyldl    时间: 2019-9-10 23:17
定义在main函数之外的变量是全程变量,在中断函数中共用一个存储单元,会跟着变化.
作者: yzwzfyz    时间: 2019-9-11 21:55
将变量设置为全局变量。
作者: trulydream    时间: 2019-9-12 09:52
是全局变量就会跟着变。但是由于main函数读取m不是原子操作,有必要的话,需要关中断保护一下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1