我一直在使用Arduino记录一些数据。在我的Arduino草图中,我还使用了该millis()
函数,以便可以跟踪我正在测量的每个值的获取时间。但是,我注意到时间不正确。例如,在现实生活中,30秒只能显示为10秒(虚构示例)。
我是否正确地说Arduino延迟功能会影响使用时间millis()
?换句话说,假设我有一个50ms的延迟,这是否意味着该millis()
函数在该持续时间内也停止,然后在连接持续时间内继续等等?当我尝试绘制一些数据并发现经过一定时间后,数据中的峰值频率过于频繁时,我注意到了这一点。因此,我想知道这是否是造成时间不匹配的原因,如果是,那么如何解决此问题,以便保留每个采样发生的时间?
这里给出一些背景是我的草图:
#include <eHealth.h>
unsigned long time;
// The setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
}
// The loop routine runs over and over again forever:
void loop() {
float ECG = eHealth.getECG();
time = millis();
Serial.print(time);
Serial.print(" ");
Serial.print(ECG, 5);
Serial.println("");
delay(50);
}
millis()
是中断驱动的,因此delay()
不应影响它。