J'utilise l'Arduino pour enregistrer certaines données. Dans mon croquis Arduino, j'ai également utilisé la millis()
fonction afin que je puisse garder une trace de l'heure à laquelle chaque valeur que je mesure est prise. Cependant, j'ai remarqué que le timing n'est pas correct. Par exemple, 30 secondes dans la vraie vie ne sortent que comme 10 secondes (exemple composé).
Ai-je raison de dire que la fonction de retard Arduino affecte la durée d'utilisation millis()
? En d'autres termes, supposons que j'ai un retard de 50 ms, cela signifie-t-il que la millis()
fonction s'arrête également pendant cette durée, puis continue et ainsi de suite pendant la durée de la connexion? Je l'ai remarqué lorsque j'ai essayé de tracer certaines données et de constater que la fréquence des pics dans mes données était trop fréquente compte tenu du temps qui s'était écoulé. Donc, je veux savoir si c'est le raisonnement pour cette inadéquation du timing et si oui, comment puis-je résoudre ce problème afin que je puisse garder l'heure à laquelle chaque échantillon se produit?
Pour donner un peu de contexte, voici mon croquis:
#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()
est piloté par interruption, delay()
il ne devrait donc pas l'affecter.