AVR Studio 4.17软件中两个C文件间调用函数,被调用函数变量值不会改变

最近在学习AVR单片机ADC章节内容时,建立了adc.c和display8.c两个文件。adc文件初始化ADC,设置ADC端口、使能和中断;display8.c文件将ADC读取数据通过51单片机HC6800开发板上的8位LED进行显示。main函数保持在adc.c文件内,每次通过adc.c文件中的main函数跨文件调用display()函数时,display()函数中的自变量uchar DisVal的值总是默认为1,即使加入关键字volatile后问题依然存在。

经过反复的模拟在线仿真试验后,发现DisVal被gcc编译器默认为局部函数的变量,将变量DisVal变量提到display8.c文件开头进行定义后,变量的值回复正常。


这个问题虽然解决了,但是下载到51开发板后,又发现8个数码管的位选显示不正常,同时LED亮度很微弱,使用万用表检查电路板,每次ls138某一位为零时,板子工作就不正常,测量电压为-1.9v。

AVR单片机IO口具有吸收电流的功能,两块板子的GND电压不一致导致了51单片机开发板的工作电压过低工作不正常,查明原因后,将两块板子的GND进行连接,8位LED数码管显示正常。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baiyang139/article/details/51544865
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

不良信息举报

AVR Studio 4.17软件中两个C文件间调用函数,被调用函数变量值不会改变

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭