OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2084|回复: 6

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

[复制链接]

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2014-9-30
在线时间
49 小时
发表于 2017-9-1 17:08:40 来自手机 | 显示全部楼层 |阅读模式
while(flag);判断语句里的位变量大概每二十微秒时间就会变化,那能否在flag为1时跳出空循环呢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2014-9-30
在线时间
49 小时
 楼主| 发表于 2017-9-1 17:11:05 来自手机 | 显示全部楼层
目前是死在了空循环这里,可是想不通啊,晶振22兆,一个while空循环怎么也不会大于二十微秒啊
回复 支持 反对

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2017-9-1 17:15:15 | 显示全部楼层
你这个是引脚上的电平吧
我有故事,你有酒吗
回复 支持 反对

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2017-9-1 22:55:45 | 显示全部楼层
当然退不出来了,while(flag)只有当flag==0时才能推出,改为while(!flag),flag==0时循环,flag!=0时推出。
回复 支持 反对

使用道具 举报

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2014-9-30
在线时间
49 小时
 楼主| 发表于 2017-9-4 20:24:01 | 显示全部楼层
来俩不甜的 发表于 2017-9-1 17:15
你这个是引脚上的电平吧

其实这是个起判断作用的引脚电平:当电平为低,意味着编码器转换完成,跳出空循环,进行下一步操作;电平为高,说明编码器正在转换,就继续空循环等待。
本来用if来做判断就可以,只不过有正好错过低电平的时候,所以想用while来代替,可是又老是空循环不退出,不知道问题出在哪。
回复 支持 反对

使用道具 举报

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2014-9-30
在线时间
49 小时
 楼主| 发表于 2017-9-4 20:35:49 | 显示全部楼层
f1174562 发表于 2017-9-1 22:55
当然退不出来了,while(flag)只有当flag==0时才能推出,改为while(!flag),flag==0时循环,flag!=0时推出。

口误,本来想表达的意思是flag为0时跳出空循环,为1时等待,只是目前一直死在空循环里,明明if (flag==0)做判断就可以,只不过总会有高电平错过的时候,所以才想到用while
回复 支持 反对

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2017-9-4 23:02:03 | 显示全部楼层
本帖最后由 f1174562 于 2017-9-4 23:03 编辑
31兔子 发表于 2017-9-4 20:35
口误,本来想表达的意思是flag为0时跳出空循环,为1时等待,只是目前一直死在空循环里,明明if (flag==0 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 08:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表