-
        

Ergebnis 1 bis 4 von 4

Thema: Zeitabschnitt als time_t erstellen

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.055

    Zeitabschnitt als time_t erstellen

    Anzeige

    Hallo zusammen,
    ich hänge derzeit an einem Problem mit time_t.
    Ich habe 3 Ints, eins für Tag, eins für Stunden, eins für Minuten.
    Diese 3 Zeitspannen möchte ich gerne zusammenaddieren, also in Sekunden umrechnen und dann als time_t abspeichern.
    Aber genau hier liegt das Problem.

    Ich habe jetzt etliche Stunden damit verbracht, einen sauberen timestamp zu erzeugen. Aber bei meinen testausgaben RTC.get() und Zeit der nächsten Aktion, welche 60 Sekunden danach erfolgen sollte, habe ich jeweils Werte zwischen 70000-80000 heraus, statt Differenzen von 60.

    Mein letzter Versuch sah wie folgt aus:
    Code:
        unsigned long days2 = (unsigned long) EEPROM.read(4);
        days2 *= 86400;
        
        unsigned long hours2 = (unsigned long) EEPROM.read(5);
        hours2 *=3600;
        
        unsigned long minutes2 = (unsigned long) EEPROM.read(6);
        minutes2 *= 60;
    
        unsigned long temptime1 = days2 + hours2 + minutes2;
    Ich würde mich über weitere Ideen freuen, wie ich aus int eine saubere time_t-Zeitspanne erstellen kann.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.055
    So, meine INTs werden nun folgendermaßen umgewandelt:
    Code:
        unsigned long days2 = (unsigned long) EEPROM.read(4);
        days2 *= 86400;
        
        unsigned long hours2 = (unsigned long) EEPROM.read(5);
        hours2 *=3600;
        
        unsigned long minutes2 = (unsigned long) EEPROM.read(6);
        minutes2 *= 60;
    
        unsigned long temptime1 = days2 + hours2 + minutes2;
        
        intervall0 = reinterpret_cast <time_t> (temptime1);

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Zitat Zitat von Cysign Beitrag anzeigen
    ...habe ich jeweils Werte zwischen 70000-80000 heraus, statt Differenzen von 60.
    ...
    Welcher werten macht er den aus den Eprom speicher daten? Welcher bytes stehen dort in dem Eprom? Und was ist den Resultat deiner Berechnung? Las dein Arduino die Quell daten, Zwischenwerten und Resultaten zum PC senden. Vielleicht kannst du dan den Fehler zurück recherchieren. Mit etwas zwischen 70000 und 80000 können wir nichts anfangen. Etwas mehr Konkreter bitte!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.055
    Danke für dein Feedback.
    Meine Lösung befindet sich in meinem zweiten Post, das Problem ist somit bereits gelöst.

    Ich hatte gehofft, dass die Werte auf eine bekannte Art von Overflow schließen lassen, was aber nicht der Fall ist. Hierbei handelt es sich um Zeitdifferenzen in meiner Anwendung.

Ähnliche Themen

  1. EEPROMex writeBlock time_t
    Von Cysign im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 16.06.2015, 20:49
  2. Umgebungsbild erstellen
    Von Mc Delta im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 09.03.2010, 18:12
  3. Zahnrad erstellen
    Von dfg im Forum Mechanik
    Antworten: 8
    Letzter Beitrag: 10.12.2008, 10:09
  4. Sensortabellen erstellen
    Von Xam im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.10.2005, 23:36
  5. Karten erstellen
    Von tornado im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 23.10.2005, 13:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •