一个关于延时的怪问题

2019-07-14 16:37发布

unit8_t   upstartadcn[2];

在定时器里设置
upstartadcn[0]++;
upstartadcn[1]++;

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


while(upstartadcn[0]<3);
while(upstartadcn[1]<2);

while(1)
{

}
}

程序会停在
while(upstartadcn[0]<3);
while(upstartadcn[1]<2);
不运行下去,定时器设置都没问题,不知道为什么
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
TOPCB
1楼-- · 2019-07-14 21:13
upstartadcn[0]++;改成upstartadcn[0]= upstartadcn[0]+1;
有的编译器可能不认这个方法,楼主可以在定时器中断中看看upstartadcn[0]的值是否改变。
kpj3026
2楼-- · 2019-07-14 23:40
 精彩回答 2  元偷偷看……
doubleyh
3楼-- · 2019-07-15 00:28
采用数组,有没有给数组初始化
lihan19840814
4楼-- · 2019-07-15 02:31
问题解决,谢谢
原因不使用volatile修饰
才子哥
5楼-- · 2019-07-15 08:20
变量是8位的,运行到255再运行会溢出的,又回到while

一周热门 更多>