打印
[STM32]

问个弱弱的问题,单片机检测脉冲

[复制链接]
2686|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huarana|  楼主 | 2015-12-15 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在要做个水流检测,采用霍尔型传感器,接在水管上,有水流动的时候输出脉冲信号。

现在就是要检测有没有水流动,目的是得到水流动的累计时间 (其实也就是水龙头开状态的时间,中间有可能开关过很多次),但不需要计算水流量,意思就是不用关心脉冲宽度 频率这些的。只要有跳变多少次就认为水流了。

不用定时器的话能搞吗

相关帖子

沙发
JY-DX-JY| | 2015-12-16 09:40 | 只看该作者
为什么不用定时器呢?

使用特权

评论回复
板凳
huarana|  楼主 | 2015-12-16 09:44 | 只看该作者
JY-DX-JY 发表于 2015-12-16 09:40
为什么不用定时器呢?

好吧,如果适用定时器如何做呢。

使用特权

评论回复
地板
JY-DX-JY| | 2015-12-16 09:48 | 只看该作者
我感觉是霍尔接到外部中断脚上,外部中断使用上升沿和下降沿。有水流触发外部中断,开启定时器,没有水流
也会触发中断,这是关闭定时器。两个时间差就是水流时间。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
huarana + 3 很给力!
5
huarana|  楼主 | 2015-12-16 10:01 | 只看该作者
JY-DX-JY 发表于 2015-12-16 09:48
我感觉是霍尔接到外部中断脚上,外部中断使用上升沿和下降沿。有水流触发外部中断,开启定时器,没有水流
...

stm32每个口都可以作为外部中断口。  计时这个不用考虑了,我已经用定时器做好了倒计时程序。

现在只需要得到有水流的时候开始倒计时,水流停止时暂停倒计时,水流时继续倒计时,直到倒计时结束彻底关闭水源。

外部中断的话处理方式应该就是  定时1秒看中断了几次,假如中断了5次以上说明水流动了,如果中断小于3次 认为没流动。应该可行

使用特权

评论回复
6
#DEFINE_NAME| | 2015-12-16 10:45 | 只看该作者
huarana 发表于 2015-12-16 10:01
stm32每个口都可以作为外部中断口。  计时这个不用考虑了,我已经用定时器做好了倒计时程序。

现在只需 ...

你都用STM32了         为什么不用捕获呢               

使用特权

评论回复
7
huarana|  楼主 | 2015-12-16 11:16 | 只看该作者
#DEFINE_NAME 发表于 2015-12-16 10:45
你都用STM32了         为什么不用捕获呢

对啊 ,x ,咋没想到 - -!

容我思考思考。或者有什么建议还请详说下

使用特权

评论回复
8
457344370| | 2015-12-16 17:53 | 只看该作者
捕获周期大的脉冲编程会麻烦点,最省事的还是直接读IO,1ms读一次,改变一次累加1,然后1s看一次累加值,看完之后清掉,

使用特权

评论回复
9
huarana|  楼主 | 2015-12-16 23:01 | 只看该作者
#DEFINE_NAME 发表于 2015-12-16 10:45
你都用STM32了         为什么不用捕获呢

听你的,晚上整了一晚上捕获。结果发现

我的实际应用 点评变化应该不是很频繁,估计小于1KHz  甚至到100hz以内

捕获要获取低频不好整啊,试了一晚上还是不行 - -!

使用特权

评论回复
10
huarana|  楼主 | 2015-12-16 23:02 | 只看该作者
457344370 发表于 2015-12-16 17:53
捕获周期大的脉冲编程会麻烦点,最省事的还是直接读IO,1ms读一次,改变一次累加1,然后1s看一次累加值,看 ...

你的方式不错,简单粗暴,今晚先休兵,明日再战。

使用特权

评论回复
11
#DEFINE_NAME| | 2015-12-17 11:31 | 只看该作者
huarana 发表于 2015-12-16 23:01
听你的,晚上整了一晚上捕获。结果发现

我的实际应用 点评变化应该不是很频繁,估计小于1KHz  甚至到100 ...

具体参考按键捕获        可以做到很长时间的         

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

1123

帖子

12

粉丝