while判断语句里的变量变化快,能判断出来吗

2019-08-14 03:29发布

while(flag);判断语句里的位变量大概每二十微秒时间就会变化,那能否在flag为1时跳出空循环呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
31兔子
1楼-- · 2019-08-14 07:20
目前是死在了空循环这里,可是想不通啊,晶振22兆,一个while空循环怎么也不会大于二十微秒啊
来俩不甜的
2楼-- · 2019-08-14 11:14
你这个是引脚上的电平吧
f1174562
3楼-- · 2019-08-14 11:55
当然退不出来了,while(flag)只有当flag==0时才能推出,改为while(!flag),flag==0时循环,flag!=0时推出。
31兔子
4楼-- · 2019-08-14 13:59
来俩不甜的 发表于 2017-9-1 17:15
你这个是引脚上的电平吧

其实这是个起判断作用的引脚电平:当电平为低,意味着编码器转换完成,跳出空循环,进行下一步操作;电平为高,说明编码器正在转换,就继续空循环等待。
本来用if来做判断就可以,只不过有正好错过低电平的时候,所以想用while来代替,可是又老是空循环不退出,不知道问题出在哪。
31兔子
5楼-- · 2019-08-14 14:24
 精彩回答 2  元偷偷看……
f1174562
6楼-- · 2019-08-14 18:04
本帖最后由 f1174562 于 2017-9-4 23:03 编辑
31兔子 发表于 2017-9-4 20:35
口误,本来想表达的意思是flag为0时跳出空循环,为1时等待,只是目前一直死在空循环里,明明if (flag==0 ...

有效信号时间过短,有可能软硬件不同步,加个RC延时试试。或者使用中断处理,这样就不会丢信号了。

一周热门 更多>