leviathan 发表于 2023-6-1 19:12:54

while循环无法进行条件判断

写了一个基于定时器的延时函数,只配置了时基单元,使得每次中断频率为0.1Mhz,定义了两个全局变量,一个计数器timcount,一个是等待时长wait,

debug时发现,程序卡死在了死循环里,while的无法进行判断,包括也试了在while(1)中使用if判断,if语句仍然无法作用。
timecount不断增加,大于wait几百倍,也仍然无法跳出循环。虽然这样的延迟函数可能不好,但还是想知道哪里出现问题导致这个情况,求解答。

eric2013 发表于 2023-6-2 09:39:28

timcont变量定义前面加__IO, 防止编译器优化,保证每次都从变量源地址读取,看看是否正常。

leviathan 发表于 2023-6-2 12:42:31

对,因为变量是在中断中变化的,需要加上 _IO(volatile) 来告诉编译器。
程序可以正常运行了,谢谢解答!
页: [1]
查看完整版本: while循环无法进行条件判断