TI中文支持网
TI专业的中文技术问题搜集分享网站

中断编译的问题

我用一个定时器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已经有对变量的声明了

赞(0)
未经允许不得转载:TI中文支持网 » 中断编译的问题
分享到: 更多 (0)