Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Display Anzeige CC2 Station bei Multithread Kategorie: CC2-Unit & Appl.Board / CC2-Station (von reneforster - 21.01.2009 16:29)
Als Antwort auf Display Anzeige CC2 Station bei Multithread von Holger - 21.01.2009 12:27
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-ReglerBoard, OSOPT V3.1
>
> 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.
>
>
> thread thr1
> {
>
>   string std,min,s,tag,monat;
>   byte second;
>   loop
> {
>    if system.dow()==0
> {
>    lcdext.goto(1,0);
>    lcdext.print("SO") ;
>

> und so weiter....
>
>
> 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   ") ;
> }
>

>
> und so weiter
>
>
> thread main
> {
>
>   stports.init();
>   lcdext.init();
>   stports.LCDlight(1);
>
> {
>
>     run thr1;
>     run thr2;
>     halt;
>
>  } }
>

> 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


    Antwort schreiben


Antworten: