共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |