Ik heb de Arduino gebruikt om wat gegevens op te nemen. In mijn Arduino-sketch heb ik ook de functie millis ()
gebruikt, zodat ik het tijdstip kan bijhouden waarop elke waarde die ik meet, wordt genomen. Ik merkte echter dat de timing niet klopt. Bijvoorbeeld 30 seconden in het echte leven komt uit als 10 seconden (verzonnen voorbeeld).
Heb ik gelijk als ik zeg dat de Arduino-vertragingsfunctie de tijdwaarneming beïnvloedt met millis ()
? Met andere woorden: stel dat ik een vertraging van 50 ms heb, betekent dat dan dat de functie millis ()
ook voor die duur stopt en vervolgens doorgaat, enzovoort gedurende de duur van de verbinding? Ik merkte dit toen ik probeerde wat gegevens uit te zetten en ontdekte dat de frequentie van de pieken in mijn gegevens te frequent was gezien de tijd die was verstreken. Dus ik wil weten of dat de reden is voor deze discrepantie in timing en zo ja, hoe los ik dit op zodat ik de tijd kan houden waarop elk sample voorkomt?
Om wat context te geven is hier mijn schets :
#include <eHealth.h> unsigned lange tijd; // De setup-routine wordt eenmaal uitgevoerd wanneer u op reset drukt: void setup () {Serial.begin (9600); } // De lusroutine loopt voor altijd keer op keer: void loop () {float ECG = eHealth.getECG (); tijd = millis (); Serial.print (tijd); Serial.print (""); Serial.print (ECG, 5); Serial.println (""); delay (50);}