Я использовал Arduino для записи некоторых данных. В моем наброске Arduino я также использовал millis()
функцию, чтобы я мог отслеживать время, в которое берется каждое измеряемое значение. Тем не менее, я заметил, что выбор времени не правильный. Например, 30 секунд в реальной жизни выходят как 10 секунд (выдуманный пример).
Правильно ли я сказал, что функция задержки Arduino влияет на время использования millis()
? Другими словами, предположим, что у меня задержка 50 мс. Означает ли это, что 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()
не должно влиять на него.