Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > > Hallo Leute, > > > > nach Studium des Forums und aller mir zur Verfügung stehenden Handbücher möchte ich hier kurz mal > > mein Problem schildern (bin Anfänger in Sachen C-Programmierung). > > > > Ich möchte in einem thread1 auf der oberen Zeile des Stationsdisplays Wochentag, Datum und Uhrzeit > > ausgeben und im thread 2 auf der unteren Zeile verschiedene Statusangaben (abhängig von der Uhrzeit > > und verschiedenen Schalterstellungen an den Eingangsports) > > > > Jetzt mein Problem: wenn beide threads zusammen gestartet werden, werden die Anzeigen für > > Zeile 2 zum Teil in die erste Zeile geschrieben. > > Wenn nur einer der beiden threads gestartet wird gibt es keine Probleme. > > Kann mir jemand sagen, woran das liegt? > > Nachstehend ein kurzer Auszug aus dem Programm. > > > > <code> > > thread thr1 > > { > > > > string std,min,s,tag,monat; > > byte second; > > loop > > { > > if system.dow()==0 > > { > > lcdext.goto(1,0); > > lcdext.print("SO") ; > > </code> > > und so weiter.... > > <code> > > > > thread thr2 > > > > { > > { > > > > byte K1,K2,S1; > > byte outport; > > byte port; > > > > > > > > if K1==0 and K2==0 and S1==0 > > > > { > > > > lcdext.goto(2,0); > > lcdext.print("Normalbetrieb ") ; > > } > > </code> > > > > und so weiter > > > > <code> > > thread main > > { > > > > stports.init(); > > lcdext.init(); > > stports.LCDlight(1); > > > > { > > > > run thr1; > > run thr2; > > halt; > > > > } } > > </code> > > Vielen Dank > > Holger > > > Hallo Holger, > > Du darfst auch nicht von zwei Stellen aus versuchen eine Rescurce anzusprechen. Ist aber generell so. > > Deshalb: > Entweder du verhinderst einen gleichzeitigen Zugriff per Programm. Also Capturen. > Oder: > Du greifts nur von einem Thread auf das Display zu. Je nach Umfang oder Ausbau deines Programmes > könnte ein eigener Thread welcher nur für die Display Ausgabe zuständig ist sinnvoll sein. > Dann müssten Informationen zum Anzeigen in globalen Variablen abgelegt werden, welche sich oberhalb > deines Display Threades befinden. > > > Rene