Variableausgabe im HD44780?

Gast #136118
Hallo liebe Community,
ich schreibe erstes mal in diesem Forum und hoffe daß ich eure Hilfe
bekommen kann.
Ich benutze ein SAB80C537 µC und ein Display mit HD44780 Baustein. Das
Display läuft einwandfrei beim Textausgabe aber nicht beim
Variableausgabe. Das Unterprogramm sieht so aus;

              Impuls = 123;
         void display_Var(UInt Impuls)
            {

               P5 = Impuls;  //Datenbus
           Delay();    //Verarbeitungswartemodus
               LCD_RS = 1;
         LCD_R_W = 0;
               LCD_ENB = 1;
               LCD_ENB = 0;
            }
Aber es zeigt nur schwarze Balken. D.h. er nimmt die Zahl 123 als
irgendeine Code die er nicht interpretieren kann.
Wie sollte man die Variable definieren? Was empfehlt Ihr?
MfG
KurtM
Gast
dei schwarzen balken bedeuten, dass das display noch nicht initialisiert
wurde. im netz gibts eine menge seiten mit dem befehlssatz der hd44780
kompatiblen displays. da solltest du dir mal die befehle durchlesen. da
ich den uC nicht kenn kann ich nichts genaueres sagen
Gast
Hallo Tobi,
das Display ist schon richtig initialisiert. Ich gebe ja nicht nur
diese variable in das Display aus. Sondern, ich schicke zuerst ein Text
wie "Geschwindigkeit =" und dann schicke ich die entsprechende
Variable.
Und er macht in dem Display genau so;
Geschwindigkeit = (ein Schwarze Balken)
Also wenn er Text ausgeben kann, d.h. er hat keine Probleme bei der
Initialisation aber bei Variablen- oder Zahlenausgabe.
Danke für dein Vorschlag.
MfG
KurtM
Gast
Les dir mal das HD44780 Datenblatt durch.
123="{" als ASCII Zeichen, so wi es das LCD versteht.
Du muss 123 in "1" "2" "3"  also 49, 50, 51 zerlegen und diese
ans LCD senden.
Die Funktion nennt sich ITOA (Integer TO ASCII)
Gast
Darf ich mal raten? Wenn du die Zahl 65 ausgibst, dann gibt es in A?

Sollte ich damit richtig liegen empfehle ich den Besuch eine
Buecherei(1) und das lesen eines guten Grundlagenbuchs.

Olaf

(1) Ort wo viele Buecher, manche sogar ohne Bilder drin, in einem Raum
stehen. :-)
Gast
Hallo Benedikt,
ich habe das Problem erledigt. Jetzt funktioniert es perfekt... Ich
habe meine Lichtschranke an meinen µC angeschlossen und die Impulse
lasse ich bei dem Display anzeigen. Vielen Dank für deine Antwort.
Achh nicht zu vergessen Olaf!..
deine Antwort hätte noch konstruktiver sein können...
MfG
KurtM
Gast
Olafs Antwort war äußerst konstruktiv.

Wenn du es nötig hast wegen so eines Fehlers im Forum zu posten, zeigt
das den Lesern nur, dass du keine ausreichenden C-Kenntnisse besitzt.

Also nimm dir den Rat zu Herzen und lern erstmal richtig die
C-Grundlagen. Du wirst es dann viel einfacher haben und kannst dich auf
die eigentliche Programmierung konzentrieren.
Gast
@Kurt: Und wenn du lernen möchtest, was genau du falsch gemacht hast,
guck dir die IntToString()-Routine an, die ich irgendwann mal
geschrieben habe. ;-)

void IntToString(char* str, int value, char precomma, char aftercomma)
{
  int k, i, digit, multiplier, j=0;
  for (i=0;i<precomma;i++)
  {
    multiplier=1;
    for (k=0;k<precomma+aftercomma-i-1;k++) multiplier*=10;
    digit = value / multiplier;
    value %= multiplier;
    str[j++] = digit + 48;
  }
  if (aftercomma) str[j++] = '.';
  for (i=0;i<aftercomma;i++)
  {
    multiplier=1;
    for (k=0;k<aftercomma-i-1;k++) multiplier*=10;
    digit = value / multiplier;
    value %= multiplier;
    str[j++] = digit + 48;
  }
}

Weiteres Zeug in diese Richtung auf www.mathar.com, auch zur
HD44780-Ansteuerung ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.