【问题标题】:Arduino impulse counter [closed]Arduino脉冲计数器[关闭]
【发布时间】:2018-12-30 18:41:47
【问题描述】:

我想为 Arduino 编写快速脉冲计数代码,以 100khz 运行。我想计算来自发生器的快速平方脉冲。我在互联网上找不到任何东西。

【问题讨论】:

  • 你能定义快吗?
  • 快速意味着每秒 100 k 脉冲
  • 100khz 所以 10 微秒,所以你可以使用硬件计时器,但你不能做很多操作,因为每个操作都会比计数器慢,除非你测试一些端口(2微秒来读取你写的值港口)。如果你想使用硬件定时器,我可以给你一个例子
  • 给我工作的例子,我将非常感激;)
  • Marianna:虽然这里的读者通常愿意帮助那些不知道从哪里开始解决问题的人,但如果提问者能够开始,它对读者的帮助很大。第一步是用搜索引擎做一些扎实的研究,然后尝试找到的代码片段,并测试它们是否合适。即使这个企业没有产生工作代码,至少产生的 Stack Overflow 问题可以显示已经尝试过的内容。

标签: arduino avr arduino-uno avr-gcc


【解决方案1】:

您可以使用中断。阅读文档here

示例代码:

const byte interruptPin = 2;
int count = 0;


void setup() {
  Serial.begin(115200);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), pulse, RISING );
}

void loop() {
  if(count % 100000 < 10000)
  {
    Serial.println(count);
  }
}

void pulse() {
  count++;
}

注意:对于如此快速的输入信号,速度是个问题。我什至不确定上面的代码是否足够快,但至少你知道该往哪个方向走。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2022-11-10
    相关资源
    最近更新 更多