Arduino Serial.die print () - Optimierung

unsigned long current_millis_value = 0;
unsigned long previous_millis_value = 0;
unsigned long m = 0;
unsigned int seconds = 0;
unsigned int minutes = 0;
unsigned int hours = 0;

unsigned long clockTimeStart = 1800000; //30 Minutes
unsigned long currentClockTime;

void loop() {
    current_millis_value = millis();
    currentClockTime -= current_millis_value - previous_millis_value;
    previous_millis_value = current_millis_value;

    minutes = (currentClockTime / 1000 / 60);
    seconds = (currentClockTime / 1000) % 60;
    m = (currentClockTime % 100);

    Serial.print(minutes);
    Serial.print(":");
    Serial.print(seconds);
    Serial.print(":");
    Serial.println(m);
}

Ich bin immer eine Lücke in den Zeiten zwischen der seriellen schreibt von überall aus 9-11 ms pro serial line geschrieben. Gibt es eine Möglichkeit zur Optimierung der Serial.print() - Methode erlauben schreiben mehrerer Werte über Arten von lang-und String-Werte?

Beispiel (dies ist nicht gültig, aber entlang der Linien von dem, was ich mir denke):

Serial.print(minutes + ":" + seconds + ":" + m);

Ich weiß, das ist nicht JavaScript arbeite ich in gerade auf der Suche nach Optimierungsmöglichkeiten für den Schreibprozess. Ich weiß, dass MOD kann teuer werden, aber gerade dabei das einfache Subtraktion und schreiben den Wert currentClockTime hinterlässt bei mir eine Lücke Zeit von 6-7 ms.

Hat man sich bei der Ausgabe auf einem Oszilloskop zu sehen, wenn die Lücke kommt? Das könnte helfen das problem einzugrenzen.

InformationsquelleAutor Jeff | 2011-04-04

Schreibe einen Kommentar