Forum: Mikrocontroller und Digitale Elektronik Problem mit Funktion um Text blinken zu lassen


von Ralf (Gast)


Lesenswert?

Hi,

vielleicht kann mir jemand schnell auf die Sprünge helfen. Ich hab ein 
Ausbildungssystem, welches mir über einen Software-Kernel bereits einige 
Funktionen zur Verfügung stellt, wie z.B. Display-Ansteuerung. Ausserdem 
wird ein Flag im 0,5s-Takt getoggelt.

Jetzt würde ich gern eine Funktion schreiben, der ich einen Text 
übergeben kann, welcher wiederum blinkt. Soweit zur Problemstellung.

Mein bisheriger (Pseudo-)Code:
1
void BLINK_TEXT(uchar * Text, uchar Pos) {
2
  static bit TxtFlash;
3
4
  while(*Text != 0x00) {
5
    if(TxtFlash != btToggle) {
6
      TxtFlash = btToggle;
7
      if(btToggle == 0) {
8
        LCD_PUTCHAR(" ", Pos);
9
      }
10
      else {
11
        LCD_PUTCHAR(*Text, Pos);
12
      }
13
      Text++;
14
      Pos++;
15
    }
16
  }
17
}

Ein Ausgabe erfolgt nur, wenn festgestellt wurde, dass sich der Zustand 
des btToggle-Flags geändert hat. In Abhängigkeit des Flags wird entweder 
der Text ausgegeben, oder eben Leerzeichen.
Soweit, so gut.

Ein Problem gibts, wenn ich mehrere unabhängige blinkende Texte ausgeben 
will, da ja bereits die Angleichung von TxtFlash an btToggle erfolgt 
ist.

Das einzige (sinnvolle) was mir momentan einfällt, ist noch ein 
zusätzlicher Parameter, der das angleichen unterbindet, aber vielleicht 
hat noch jemand ne Idee, wie man das lösen kann?

Ralf

von holger (Gast)


Lesenswert?

>btToggle

Mehrere btToggle verwenden die unabhängig voneinander
sind.

von Ralf (Gast)


Lesenswert?

Hi Holger,

> Mehrere btToggle verwenden die unabhängig voneinander sind.
Ja, die Idee kam mir auch schon, hab ich aber Bedenken, wenn ich 
einigermaßen platzsparend programmieren will, müsste ich ja vorher immer 
wissen, wieviele ich brauche (andersrum gesehen ist das aber ja auch ein 
Weg, wie's die Profis machen, denke ich).

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.