我在使用28377D,遇到一个问题,有一个变量(定位cnt吧),在中断和主循环中都有对cnt的修改操作,就是cnt加1或者减1。
会不会当在主循环操作cnt的时候,中断进来,打断了对cnt的操作,中断执行完成之后再继续主循环中的cnt的操作?
谢谢!
Susan Yang:主函数与中断函数共用变量可能会引起一些问题,如您所提到的问题。
当在主循环操作cnt的时候,中断进来,打断了对cnt的操作。这就有可能可能造成中断函数对变量的读写无效(主函数刚刚把变量读入到内部寄存器时,还未再回写到变量中,而中断改变了变量的值)。
建议您看一下blog.csdn.net/…/50426028
Gandy的说明非常详细
我在使用28377D,遇到一个问题,有一个变量(定位cnt吧),在中断和主循环中都有对cnt的修改操作,就是cnt加1或者减1。
会不会当在主循环操作cnt的时候,中断进来,打断了对cnt的操作,中断执行完成之后再继续主循环中的cnt的操作?
谢谢!
mangui zhang:全局变量是可以被中断函数和主循环同时操作的主要能实现功能就好
不会出现cnt被同时操作