共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3学习整理】使用 LPUART 的loopback 模式实现核间通讯被打赏¥28元 | |
| arduinounoq原生zephyr环境搭建被打赏¥31元 | |
| 树莓派3+Klipper,MPU6050共振补偿被打赏¥41元 | |
| GroveCreatorKit套件+摇杆测评被打赏¥18元 | |
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
我要赚赏金
