【发布时间】:2015-11-14 15:45:14
【问题描述】:
我正在尝试使用库 Due Timer 读取速度为 10KHz 的模拟输入 (A0),但是,当我增加它崩溃的向量的值时,目标是在 FFT 分析中使用该向量带有 5000 大小的向量。我曾尝试直接使用 SAM3X83 定时器,但我遇到了同样的问题。这个问题快把我逼疯了!!
请提供任何帮助。谢谢。
#include <DueTimer.h>
int v[5000];
void setup(){
Serial.begin(9600);
Timer3.attachInterrupt(Read);
Timer3.start(100);
analogReadResolution(12);
}
void loop(){}
void display(){
for(int j=0; j<5000; j++){
Serial.println(v[j]);
}
}
int i=0;
void Read(){
v[i]=analogRead(A0);
i++;
if (i>=5000){
i=0;
Timer3.stop();
}
}
【问题讨论】:
-
这段代码中的“向量的值”是什么?
-
你的代码在哪里崩溃?
-
您好,收到您的回答后我睡不着,所以我又开始编码,我解决了。虽然我忘记添加对显示函数的调用,但它没有工作,因为它是循环“循环”,这就是我所做的并且完美地工作:
-
int i=0;无效读取(){ v[i]=analogRead(A0);状态=!状态;数字写入(领导,状态);我++; if (i>5000){ Timer3.stop();我=0;标志 = 1; } }
-
我不得不从循环循环中调用显示函数,这是它工作的唯一方式,LED 引脚用于测量频率并使用 USB 数据分析仪确保频率正确
标签: timer arduino counter interruption arduino-due