我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
mangui zhang:
你好 是在同一个源文件中吗 主函数中定义的属于局部变量 只能用于主函数中使用
中断函数则需要全局变量 你定义全局变量试试
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
囧:
你在主函数定义的变量只能在主函数使用,因为在编译后,这些变量就是一个预留的未初始化段,也就是临时变量,如果你想要变量在整个项目中可用,需要定义在主函数外面,就是定义一个extern的全局变量。
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
zizhong tan:
回复 mangui zhang:
你好,我已经定义在主函数外边了,定义成了全局变量,不是在同一个源文件,这三个变量在主函数里用到,在中断函数中也用到,中断函数式另一个.c文件,没有和主函数在同一个文件,编译时候,显示中断函数里面的变量没有定义,请问这是什么原因啊?谢谢您了。
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
囧:
回复 zizhong tan:
因为你在其他.c定义了这个变量,所以主函数找不到这个变量的地址,你可以在主函数的include的.h文件中,再次申明一下这个变量,就可以通过编译了
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
zizhong tan:
回复 囧:
变量定义就在主函数上边三行,和主函数是同一个.c文件,在主函数里面用了这三个变量,在中断函数也用了这三个变量,但是编译时候,就是中断函数里面报错说是没有定义。
另一个工程,也是这样定义的,但是就能编译过去,这个就不行,请问这是怎么回事?
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
囧:
回复 zizhong tan:
如果是两个不同的.c文件,要使用同一个变量,必须加入共用的.h,并且里面有对这个变量进行全局声明,这样是一定可以在多个文件使用的。
我用一个定时器T1周期中断控制LED,我在主程序里面定义了三个变量,在中断函数里面用,可以在编译时候出错,报错说是没有定义这三个变量,请问这是怎么回事,谢谢您了。
囧:
回复 zizhong tan:
可能是另一个项目加入的.h已经有对变量的声明了