共2条
1/1 1 跳转至页
c51,c166 问个幼稚的问题.(c51,c166)

问
我在main(){
while(1){
while(one_flag){
...........
one_flag = 0;
}
}
}
我的意思是在主程序里不停的查询one_flag标志,如果为真就干点事,为假就等待.其中one_flag标志在中断程序中置1.可是程序只查询了一次就等待了,再没有回到
while(one_flag)这里来?不是while(1)会重复执行里面的语句,是无穷循环嘛?为什么while(one_flag)语句体就执行了一次?
答 1: 改成while(oneflag==0);可以吗?我想可能是这个问题:我在main()中定义unsigned char TIME13_R = 0 ;
在中断中定义unsigned char TIME13_R;都是局部变量,所以TIME13_R在main()中总是不变.
但是我在中断程序申明extern unsigned char TIME13_R;系统总提示未确定的外部符号?
这样定义没有错吧?
答 2: 你的while直1了,当然会执行一次了。 答 3: 在main()外定义 答 4: 谢谢winsu:果然如此.看来我对概念不清.乞丐:你可能误会我的意思了.我是想在while(1){}这个大循环中不停查询one_flag标志,不为真就等待.one_flag在中断程序修改了. 答 5: 谢谢!解决问题了.都是定义的错误.
while(1){
while(one_flag){
...........
one_flag = 0;
}
}
}
我的意思是在主程序里不停的查询one_flag标志,如果为真就干点事,为假就等待.其中one_flag标志在中断程序中置1.可是程序只查询了一次就等待了,再没有回到
while(one_flag)这里来?不是while(1)会重复执行里面的语句,是无穷循环嘛?为什么while(one_flag)语句体就执行了一次?
答 1: 改成while(oneflag==0);可以吗?我想可能是这个问题:我在main()中定义unsigned char TIME13_R = 0 ;
在中断中定义unsigned char TIME13_R;都是局部变量,所以TIME13_R在main()中总是不变.
但是我在中断程序申明extern unsigned char TIME13_R;系统总提示未确定的外部符号?
这样定义没有错吧?
答 2: 你的while直1了,当然会执行一次了。 答 3: 在main()外定义 答 4: 谢谢winsu:果然如此.看来我对概念不清.乞丐:你可能误会我的意思了.我是想在while(1){}这个大循环中不停查询one_flag标志,不为真就等待.one_flag在中断程序修改了. 答 5: 谢谢!解决问题了.都是定义的错误.
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 | |
我想要一部加热台+LED背光驱动芯片RT9293知识被打赏18分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 ADC 模块配置使用被打赏24分 | |
【换取手持数字示波器】nRF54L15-DK开发环境搭建被打赏31分 |