这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » c51,c166 问个幼稚的问题.(c51,c166)

共2条 1/1 1 跳转至

c51,c166 问个幼稚的问题.(c51,c166)

院士
2006-09-17 18:14:16     打赏
c51,c166 问个幼稚的问题.(c51,c166)



关键词: 问个     幼稚     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 我在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: 谢谢!解决问题了.都是定义的错误.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]