标题: 51单片机中断函数调用子函数,子函数的局部变量无法控制 [打印本页]

作者: sdarling    时间: 2021-2-27 22:54
标题: 51单片机中断函数调用子函数,子函数的局部变量无法控制
如果将显示函数放在主函数的while里,里边的5个变量全是局部变量,但是其功能也正常使用。
但当我将显示函数放在中断里进行扫描时,发现显示函数里边的5个局部变量只有第一个调用的变量是正常的,其他几个局部变量一直保持0x00无法操作,功能不正常。
然后我试着将局部变量都定义程序全局变量或者静态变量,功能又正常了...最后又按上图中的样子,将digit定义单独定义成静态,其他保持局部变量,功能也是正常的.....其他几个uchar的变量没有飞...
然后当我直接用行参来进行算数操作时,功能也是不对的..只有把行参放到静态变量里,再计算才正确.
还有我软件调试的时候发现,digit的值和实参是一致的,但是行参的值一直在乱跳,是调用并结束函数之后释放了吗
求各位大佬解惑....为啥用定时器调用这显示函数就必须将其内部变量设置为静态或者全局,而在主函数的while中就没遇到过这种问题.为什么不能直接调用行参,而需要先赋值...


作者: sdarling    时间: 2021-2-27 23:00

大概找打答案了?.233....我把定时中断的工作寄存器组改回去默认就正常了




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