极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10151|回复: 2

新人请教个问题,各位大大帮忙啊,在线等

[复制链接]
发表于 2013-9-26 22:12:40 | 显示全部楼层 |阅读模式
我是个新新手,在写一个中断程序,检测脉冲的宽度和个数:
主程序是显示高电平时间 和 脉冲个数。
设置脉冲上升沿中断,中断程序是用 pulseIn() 检测高电平时间,放在时间变量中,计数变量加1.返回主程序显示。


程序还没写,只是想问问各位,中断发生后用pulseIn()函数还能测出时间吗?这个程序是否成立?
如果不成立,用什么办法实现?麻烦各位了。在线等。
回复

使用道具 举报

 楼主| 发表于 2013-9-26 22:19:24 | 显示全部楼层
用于测量微秒级 的脉冲
回复 支持 反对

使用道具 举报

发表于 2013-9-28 08:42:30 | 显示全部楼层
int i;
unsigned long time =0;
-----------------------------------------
while(digitalRead(pin)==LOW)
{}                                           //如果该端口低电平,则循环
time = micros();                        //跳出循环后(出现高电平),记录时间
while(digitalRead(pin)==HIGH)
{}                                           //如果该端口高电平,则循环
if ((micros()-time)>2)
i++;                                         //如果高电平持续时间大于2微秒(不是毫秒哦),则“i”加一。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 00:43 , Processed in 0.035970 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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