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

Re: Display Probleme (flackern) Kategorie: Sonstige Hardware (von Norbert - 28.05.2005 20:49)
Als Antwort auf Re: Display Probleme (flackern) von wema - 24.05.2005 1:03
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
> > Hi!
> > Danke erstmal für die Antwort!
> > Ja, du könntest da recht haben, mein Problem ist nur dass ich mich erst seit kurzem mit der Unit
> > beschäftige und daher mich als sehr unerfahren bezeiche...
> > Wie verhindere ich denn dass flackern?? Als Anhang mein kleines Programm mit dem ich teste...
> >
> >
> > /*************************
> >     Textausgabe am LCD
> > **************************/

> >
> > //------------
> >   thread main
> > //------------
> > {
> >   string s,t;
> >
> >   lcdext.init ();
> >   lcdext.goto(0,1);
> >   s = "Versuch 1";
> >   lcdext.print(s);
> >  
> >  
> >   lcdext.goto(2,5);
> >   t = "VMA AE";
> >   lcdext.print(t);
> >   sleep 100;
> >
> > }
> >
> >
> >

> >
> >
> > MfG
>
> Hallo,
>
> ein thread mit der Bezeichnung "MAIN" wird immer wieder neu aufgerufen. Daher auch das Flimmern.
> Um das zu vermeiden, gibt es m.E. zwei Möglichkeiten:
> 1. Wenn statische (also unveränderbare) Anzeigen dargestellt werden sollen, dann mu�t Du dafür
>    sorgen, das dieser Aufruf nur einmal erfolgt.
>
> 2. Bei veränderbaren Anzeigen (Temperaturen etc.) sorge ich persönlich immer dafür, dass zuerst
>    Ã¼berprüft wird, ob sich der dazustellende Wert gegenüber der aktuellen Darstellung geändert hat.
>    Eine erneute Darstellung wird dann erst vorgenommen. Als Beispiel:
>
> thread Anzeige
> {
>   int wert_neu,wert_alt;
>   wert_alt = wert_neu;
>   loop
>   {
>     wert_neu = ad(3);  //  bitte nicht in ein Modul einfügen. Ist nur als Beispiel gedacht und wird so nicht
>                                //  funktionieren.
>     if wert_neu != wert_alt  //  wenn die beiden Variablen ungleich sind, dann ...
>     {
>        lcd.clear();
>        lcd.zahl(wert_neu);
>        wert_alt = wert_neu;
>     }
>   }
> }
>

>
> Ich hoffe, ich konnte Dir ein wenig helfen.
>
> GruÃ?,
> wema


Hallo :


eine ähnliche Lösung ist ein "Byte refresh;" als globale Variable. Dazu leiste ich mir ein
eigenes Modul mit Namen global.

Alle möglichen threads (oder Funktionen) dürfen das Flag auf 1
setzen, nur function display nimmt das flag zurück.

Grü�e aus dem Norden, Norbert



    Antwort schreiben


Antworten: