Re: Sprungmarke in C2 Kategorie: Programmierung (von André H. - 29.09.2004 9:48) | ||
Als Antwort auf Re: Sprungmarke in C2 von ACU - 27.09.2004 19:21 | ||
| ||
Hallo ACU, Sieht schonmal gut aus. :-) Aber noch ein paar Anmerkungen zur Optimierung: - Wenn Du das Dsiplay mit lcdext.clear() löscht, brauchst Du nacher kein lcdext.home() oder ähnliches ausführen, um den Cursor an die erste Stelle zu positionieren. Das Display macht dies beim Löschen automatisch. - Wenn Du Deinen beiden Strings immer explizit einen Text zuweist, brauchst Du diese nach der Ausgabe nicht explizit löschen. Die Strings werden einfach mit der nächsten Meldung überschrieben. - Capturing: Du greifst auf Variablen aus zwei unterschiedlichen Threads schreibend zu. Das kann irgendwann einmal zu Problemen führen, wenn dies nicht gecaptured wird. Capture die Variablen nach diesem Schema: capture flag;// definierte globale Byte-Variable Displaymeldung = <Wert>; release; Dasselbe gilt natürlich auch für die Variable InfoanDisplay. Und noch eine Bitte: Verwende beim posten von Quellcode bitte die code-Tags, damit dieser korrekt dargestellt wird. Denn gerade grö�er- und kleiner-Zeichen werden sonst meistens als HTML-Tag interpretiert, soda� Teile des Quellcodes oft nicht sichbar sind. Au�erdem sieht es mit den Code-Tags besser aus. ;-) Ich habe Deinen Quellcode einmal Nachträglich mt code-Tags versehen. MfG André H. > So der Code ist fertig und funktioniert! > Hier der Code: > > while Entfernunglinks<=12 or Entfernungrechts<=12 //gucken, ob entfernung ok ist! > { > Start=0; > Displaymeldung = 1; > Displaystring1="Zu wenig Platz!"; > Displaystring2="OK=1"; > InfoanDisplay=1; > wait Start; > } > > Und der passende Code aus dem Interface Thread: > if Displaymeldung==1 > { > lcdext.clear(); > lcdext.home(); > lcdext.print(Displaystring1); > lcdext.line(2); > lcdext.print(Displaystring2); > Displaymeldung =0; > str.clear(Displaystring1); > str.clear(Displaystring2); > } > if InfoanDisplay==1 > { > wait ports.adc(7) > 277 & ports.adc(7) <351; > Start=1; > InfoanDisplay=0; > } > > > > Funkioniert Super! > Danke nochmal für die Hilfe! > > MfG ACU Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |