Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino频率计数器问题_Arduino_Counter_Frequency_Led - Fatal编程技术网

Arduino频率计数器问题

Arduino频率计数器问题,arduino,counter,frequency,led,Arduino,Counter,Frequency,Led,我正在成功地使用这个伟大的Arduino频率库: 但是我的LED有一个问题。如果我给它们的值为“高”或“255”,则它们正在工作。但是,它们并没有使用较低的值。我在另一个草图中测试了LED。因此,它们接线正确,工作正常,Arduino也是如此。“FreqCounter::start(100);”行似乎有问题。如果我删除它,较低的值是工作的,但当然频率计数器不是 我如何解决这个问题 代码如下: #include <FreqCounter.h> unsigned long frq;

我正在成功地使用这个伟大的Arduino频率库:

但是我的LED有一个问题。如果我给它们的值为“高”或“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;
  }
}
#包括
无符号长frq;
/***输出发光二极管***/
绿色=9;
黄色=10;
int-ledRed=11;
无效设置(){
引脚模式(LED绿色,输出);
引脚模式(LED黄色,输出);
引脚模式(LED红色,输出);
序列号开始(115200);
Serial.println(“频率计数器”);
}
void循环(){
/***写***/
模拟写入(莱德格林,255);
模拟写入(LED黄色,100);
模拟写入(ledRed,10);
/***频率计数器***/
频率计数器::f_comp=10;//校准值/使用专业频率计数器校准
FreqCounter::开始(100);//100毫秒选通时间
while(FreqCounter::f_ready==0){
frq=频率计数器::f_freq;
}
}

根据文档,该库重新利用计时器1计算频率。然而,引脚9和10的PWM需要默认设置的定时器1。

我收到一个提示。。。问题是我使用的库在选通时间内禁用了硬件计时器。因此,在此期间,PWM出现故障!是的,没错。。。我收到了一张没有使用计时器的草图。它使用了中断。威胁如下: