Re: Fehlfunktion der Station? Kategorie: Verschiedenes (von Michael - 10.08.2004 14:56) | ||
Als Antwort auf Re: Fehlfunktion der Station? von André H. - 10.08.2004 10:42 | ||
| ||
... ok, werde ich machen... Nochmal ganz herzlichen Dank für Deine schnelle Hilfe!!!! Herzliche Grü�e, Michael > Hallo Michael, > > Du hattest geschieben, da� Du die aktuellen Dateien nutzt. > Da Du aber station_io und station_lcd ansprichst, ist dies auf jeden Fall nicht der Fall. > Benutze einmal stports.c2, stkeyb.c2 und lcdext.c2. > Diese Dateien sind u.a. alle im aktuellen ServicePack enthalten. > Die Conrad Module station_io.c2 und station_lc.c2 sind alle ein bi�chen buggy. > > Au�erdem, benutze bitte bei Quellcode immer die code-Tags, damit dieser > auch richtig abgebildet wird und besser lesbar ist. Denn ansonsten kann es gerade > bei Verwendung des Kleiner-Zeichens passieren, da� der Quellcode verstümmelt > wird, da Abschitte als HTML-Tags fehlinterpretiert werden. > > Nun aber wieder zu Deinem Problem: > Du hast einen grundlegenden Fehler in Deiner Berechnung: > (siehe auch FAQs: "Ich bekomme bei Berechnungen mit Long/Float-Werten falsche Ergebnisse.") > > long sec1, sec2; > sec1 = (zeit1.hour * 60 + zeit1.minute)*60 + zeit1.second; > sec2 = (zeit2.hour * 60 + zeit2.minute)*60 + zeit2.second; > > Du sprengst den Wertebereich der Variablen. > Berechnungen laufen immer als Integer ab, wenn kein grö�erer Wertetyp beteiligt ist. > Auch Wenn Du das Ergebnis in einen Longwert speicherst, so wird es hier immer > im Bereich von -32768 bis +32767 bleiben. > Das ist auch der Grund für die zuverlässige Bewässungen um 0:47:25. > Stelle die Bereichung so um, dann funzts: > > long sec1, sec2; > sec1 = zeit1.hour * 60 + zeit1.minute; > sec1 = sec1*60 + zeit1.second; > sec2 = zeit2.hour * 60 + zeit2.minute; > sec2 = sec2*60 + zeit2.second; > > MfG André H. > | ||
Antwort schreiben Antworten: |