共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
