极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9811|回复: 1

[求助]如何最快地Arduino获取输入信号?

[复制链接]
发表于 2013-7-28 14:40:19 | 显示全部楼层 |阅读模式
外部信号不断变化,Arduino检测到变化之后,产生相应行为,现在的代码是借用范例程序里"BlinkWithoutDelay"。
基本上就是没间隔 'threshold'这么多时间单位,就可以检测触发一次。


void loop()
{
   // get NOW   , 获得当前时间
   if (NOW - prevValue > threshold)  // 如果当前时间与上一次时间超过一定数量
  {
      // 检测信号,触发行为
     prevValue = NOW
  }
}


还想更快一些。

假设上面的threshold是0,也就是loop没运行一次,Arduino就会去检测,
这时的检测(频率)是多少?

另:
这样感觉CPU在不断忙碌,有更好的方式吗?
毕竟信号变化不是那么频繁,能否等信号发生变化时,自动触发?

多谢。
回复

使用道具 举报

发表于 2013-7-28 17:37:24 | 显示全部楼层
使用中断,不管在何时端口有变化立即感知。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 06:33 , Processed in 0.038528 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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