qihao74 发表于 2016-2-17 08:32:41

一个关于延时的怪问题

unit8_t   upstartadcn;

在定时器里设置
upstartadcn++;
upstartadcn++;

在主程序里
int main(void)
{
初始化设置


while(upstartadcn<3);
while(upstartadcn<2);

while(1)
{

}
}

程序会停在
while(upstartadcn<3);
while(upstartadcn<2);
不运行下去,定时器设置都没问题,不知道为什么

shaoziyang 发表于 2016-2-17 09:04:01

在中断设置断电看看

发表于 2016-2-17 09:05:48

upstartadcn++;改成upstartadcn= upstartadcn+1;
有的编译器可能不认这个方法,楼主可以在定时器中断中看看upstartadcn的值是否改变。

黄小狼 发表于 2016-2-17 09:11:29

定时器有没有正确初始化呀?确定一下数据是不是在变化

kxajd001 发表于 2016-2-17 11:25:36

采用数组,有没有给数组初始化

qihao74 发表于 2016-2-18 08:06:28

问题解决,谢谢
原因不使用volatile修饰
页: [1]
查看完整版本: 一个关于延时的怪问题