OpenEdv-开源电子网

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

while的判断变量变化快,能否跳出循环来

[复制链接]

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

33

主题

982

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7862
金钱
7862
注册时间
2014-8-13
在线时间
1584 小时
发表于 2017-9-1 23:10:26 | 显示全部楼层
如果实在太快,就可以考虑辅助芯片了,比如用串转并芯片(比如74HC595)或者计数器芯片(74LS192)以及基于他们的外围电路来缓存外部过快的脉冲变化,然后交给MCU的多个引脚来分担单个引脚的速度压力。如果是内部信号的话,尝试事件中断之类的方法吧
回复 支持 反对

使用道具 举报

23

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2014-9-30
在线时间
49 小时
 楼主| 发表于 2017-9-4 20:10:07 | 显示全部楼层
mack13013 发表于 2017-9-1 23:10
如果实在太快,就可以考虑辅助芯片了,比如用串转并芯片(比如74HC595)或者计数器芯片(74LS192)以及基于他 ...

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

使用道具 举报

2

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
821
金钱
821
注册时间
2013-6-5
在线时间
141 小时
发表于 2017-9-6 18:36:04 | 显示全部楼层
31兔子 发表于 2017-9-4 20:10
其实这只是个起判断作用的引脚电平:当电平为低,意味着编码器转换完成,跳出空循环,进行下一步操作;电 ...

引脚上加一个 100P左右的电容
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 21:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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