0

我成功地使用了这个伟大的 Arduino 频率库:Arduino 频率计数器

但是我的 LED 有一个问题。如果我给他们“HIGH”或“255”的值,他们正在工作。但是,他们并没有以较低的价值工作。我已经在另一个草图中测试了 LED。所以它们接线正确并且工作正常,Arduino也是如此。“FreqCounter::start(100);”似乎有问题 线。如果我删除它,较低的值会起作用,但频率计数器当然不是......

我该如何解决这个问题?

这是代码:

#include <FreqCounter.h>

unsigned long frq;

/*** OUTPUT LED ***/
int ledGreen = 9;
int ledYellow = 10;
int ledRed = 11;

void setup() {
  pinMode(ledGreen, OUTPUT);
  pinMode(ledYellow, OUTPUT);
  pinMode(ledRed, OUTPUT);

  Serial.begin(115200);
  Serial.println("Frequency Counter");
}

void loop() {

  /*** WRITE ***/
  analogWrite(ledGreen, 255);
  analogWrite(ledYellow, 100);
  analogWrite(ledRed, 10);

  /*** FREQUENCY COUNTER ***/
  FreqCounter::f_comp = 10; // Calibration value / calibrate with a professional frequency counter
  FreqCounter::start(100);  // 100 ms gate time

  while (FreqCounter::f_ready == 0){
    frq = FreqCounter::f_freq;
  }
}
4

1 回答 1

0

根据文档,该库将 TIMER1 重新用于计算频率。然而,引脚 9 和 10 的 PWM 需要具有默认设置的 TIMER1。

于 2013-10-17T21:29:40.150 回答