Ich seh in dem Code oben kein "WAIT".
Ohne (original) Programm ist über Programmprobleme schwer zu befinden
Vergiss nicht, das Problem sitzt meistens VOR dem Bildschirm![]()
Ich seh in dem Code oben kein "WAIT".
Ohne (original) Programm ist über Programmprobleme schwer zu befinden
Vergiss nicht, das Problem sitzt meistens VOR dem Bildschirm![]()
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Das Programm sieht sehr sehr schlimm aus. Ich bin Anfänger.
Das Programm hat eine längere Geschichte, und ist kompliziert, laienhaft und herumgebastelt, ich denke das würde großes Haarsträuben bei den Profis auslösen.
Das wollte ich euch erstmal ersparen
Ich müsste da schon noch wenigstens etwas Kosmetik betreiben dass ich es hier reinstelle, was ich vielleicht noch machen werde.
Versuche das nötigste zu einem kleinen Testprogramm zusammenzufügen.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
So, jetzt kommen wir der Lösung näher.
Ich hab den Teil isolieren können und den Fehler reproduziert:
So funktioniert die Rückstellung.Code:Do Cls Locate 1 , 1 Lcd S Locate 2 , 1 Lcd "Zeit " ; Time$ Cursor Off Waitms 50 Loop Sectic: S = S + 1 'Sekunden-Tageszähler If Time$ = "00:00:00"then S = 0 Time$ = "00:00:03" 'Kompensation Uhrenquarz End If Return
Allerdings, wenn ich im Display die Anzeige von time$ weglasse, dann funktioniert es nicht mehr!
Das ist der springende Punkt!
Aber erklären kann ichs nicht. Es muss wohl tatsächlich wie Vitis schon geschrieben hat mit dem Stringvergleich zu zun haben.
Er funktioniert, wenn gleichzeitig time$ im Display angezeigt wird und ansonsten funktioniert es nicht !?!
Wie kann ich diese Problem lösen, ohne time$ im Display anzeigen zu müssen?
hmmm ... wenn du über einen zweiten String gehst könnts gehen, aber das ist nur ne Spekulation ... also
dim tempstring as string*8
tempstring=time$
if tempstring="00:00:00" then
' irgendwas
endif
Vor den Erfolg haben die Götter den Schweiß gesetzt
Wozu jedesmal Cursor off?
Am besten ohne waitms arbeiten.
Du kannst S in einer anderen Variablen zwischenspeichern und wenn S geändert wurde das Display aktualisieren. Außerdem zählst Du jede Sekunde S hoch, da brauchst Du nicht Time$ vergleichen
Code:Cursor Off dim s_alt as long const sTag =60*60*24 Do if s <> salt then salt=s Cls Locate 1 , 1 Lcd S Locate 2 , 1 Lcd "Zeit " ; Time$ end if Loop Sectic: incr s 'Sekunden-Tageszähler if s=stag then S = 0 Time$ = "00:00:03" 'Kompensation Uhrenquarz End If Return
Geändert von peterfido (14.06.2011 um 17:24 Uhr)
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Ja, genau so geht es , ich danke dir.
Da kann man mal sehen, wie man fehlgeleitet werden kann. Weil ich für die Displayanzeige Seite 2 statt 50ms 500ms hatte, glaubte ich dass dies der Grund sein müsste.
Aber dass ein anderer Displayinhalt (genauer: ob time$ angezeigt wird oder nicht) doch tatsächlich die Ursache war, dass es einmal ging und einmal nicht, das hätte ich doch wirklich nicht vermutet.
Lesezeichen