Fehler im Betrieb

Gast #3565293
Lesenswert?

Hallo,

ich muß gleich vorweg sagen, dass ich beim Programmieren der Controller 
nicht sehr erfahren bin. Dies ist eines meiner ersten Projekte.
Der Controller soll als Stundenzähler für eine Heizkanone dienen. 
Mittels Schlüsselschalter können die einzelen Benutzer die Heizung 
einschalten und die Betriebsstunden werden pro Person gezählt. Werden 
zwei Schlüssel gedreht, wird die Zeit entsprechend gerechnet. Werden 
drei Schlüssel gedreht, läuft die Zeit auf ein gemeinschafts Konto. 
Soweit läuft die ganze Sache auch ganz gut. Folgendes Problem tritt erst 
nach einigen Stunden auf.
Es werden falsche Werte berechnet, angezeigt und in den Speicher 
geschrieben.
z.B: spring der Minutenzähler auf werte über 60, oder die Anzeige im 
Display verschiebt sich.

Vielleicht hat jemand einen Tip für mich, ich weiß jedenfalls nicht mehr 
weiter.

Mfg
Martin
Gast #3566763
Lesenswert?

cap schrieb:
> z.B: spring der Minutenzähler auf werte über 60

Das solltest du vermeiden, indem du schon in dem Moment, wo er auf 60 
schaltet, ihn automatisch auf 00 zurücksetzt und dafür den Stundenzähler 
um eins erhöhst. In der Fachsprache heißt das "Übertrag".
Gast #3566786
Lesenswert?

Bei dem Programm das du gepostet hast wird kein Fehler auftreten.
Da kommt gar nicht erst durch den Compiler;)

int tast0, tast1, tast2, tast2, tast3, tast4, tast5, tast6, tast7;
                  ^^^^^  ^^^^^
                  |||||  |||||
Gast #3567270
Lesenswert?

cap schrieb:
> Hab ich das nicht?
1
 
2
  if (Minuten1 > 59)
3
       {
4
         Stunden1 = Stunden1 + 1;
5
         Minuten1 = 0;
6
         if ((Stunden1 > 0) && (Stunden1 < 999))
7
         {
8
          eeprom_write_word(&Stunden1_ee,eeprom_read_word(&Stunden1_ee) +  1 );
9
         }
10
       }

Auf jeden Fall nicht im EEPROM.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren