-
-
Hallo Heinz,
ich glaube ich habe den Fehler gefunden. Er tritt aber nicht erst nach 9 Stunden auf, sondern direkt nach 10 Sekunden.
For X = 0 To 10
S_sec_e(x) = 1
Next X
in dieser Anweisung liegt der Fehler (scheiss Basic-Dialekte). Bei Bascom beginnen die Arrays mit 1. Das hat zur Folge, dass Du mit S_sec_e(0)=1 (X=0) den Wert für Std_z =1 setzt, da er direkt vor dem Array liegt. Wird nach 10 Stunden der Stunden wert erhöht, dann nicht von 0 auf 1, sondern gleich von 1 auf 2, die zweite LED wird eingeschaltet.
Genaugenommen sind auch die anderen For X=0 To ... Schleifen fehlerhaft, hier werden aber keine Variablen angesprochen, die im Programm verwendet werden bzw die sowieso schon den Wert 1 haben.
Das Problem ist / war, dass bei unterschiedlichen Basic-Versionen Arrays mal mit 0 und mal mit 1 beginnen. Bei Visual Basic kann man sogar durch einen Befehl den Beginn von Arrays festlegen. Bedingt durch den kleinen Speicher prüft Bascom nicht, ob Array-Grenzen überschritten werden.
Gruss Frank
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen