www.mikrocontroller.net

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


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
void BLINK_TEXT(uchar * Text, uchar Pos) {
  static bit TxtFlash;

  while(*Text != 0x00) {
    if(TxtFlash != btToggle) {
      TxtFlash = btToggle;
      if(btToggle == 0) {
        LCD_PUTCHAR(" ", Pos);
      }
      else {
        LCD_PUTCHAR(*Text, Pos);
      }
      Text++;
      Pos++;
    }
  }
}

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>btToggle

Mehrere btToggle verwenden die unabhängig voneinander
sind.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.