初级会员

- 积分
- 75
- 金钱
- 75
- 注册时间
- 2013-8-18
- 在线时间
- 8 小时
|
原子哥:
问题描述:我之前用keil mdk(忘记是那个版本了)编写的程序,在程序部分地方用全局变量做一个延时(定时中断里减),当时没有问题。程序如下:
delay_time=DataTime1s; //(DataTime1s是常量 0x01f4);
while(delay_time); //定时中断里delay_time会减一;一直到0
现在我用keil mdk 4.53/4.54两个版本都有同一个问题。就是不能够退出的死循环while(delay_time);但是查看变量delay_time已经等于0了,
后来我又改成如下部分:
delay_time=DataTime1s;
while(1)
{
temp_asdx=delay_time;
if(temp_asdx==0x00)
break;
else
temp_asdx++;
}
注:temp_asdx是局部变量。
发现在delay_time=DataTime1s后, (DataTime1s是常量 =0x01f4);
在循环里执行 temp_asdx=delay_time后,temp_asdx一直不变,等于DataTime1s(常量 =0x01f4);
在程序里,明明delay_time=0x00了,但执行temp_asdx=delay_time后,temp_asdx还是等于DataTime1s(常量 =0x01f4);
仿真环境:stm32f103,JLink v8
不知道是什么原因?望知道的大虾指点下。小弟先谢谢了。
|
|