一切如愿 发表于 2013-9-26 22:12:40

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

我是个新新手,在写一个中断程序,检测脉冲的宽度和个数:
主程序是显示高电平时间 和 脉冲个数。
设置脉冲上升沿中断,中断程序是用 pulseIn() 检测高电平时间,放在时间变量中,计数变量加1.返回主程序显示。


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

一切如愿 发表于 2013-9-26 22:19:24

用于测量微秒级 的脉冲

bacon6581 发表于 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”加一。
页: [1]
查看完整版本: 新人请教个问题,各位大大帮忙啊,在线等