LCD-Display

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • LCD-Display

      Ein freundliches Hallo in die Expertenrunde! ;)

      Ich benötige nach längerer Zeit wieder einmal Eure Hilfe.
      Mein Problem ist das Anzeigen eines Wertes auf einem LCD-Display.

      Normaler Weise ist eine Anzeige auf einfache Art möglich:
      LCD "Ein Beispiel" ' und das klappt auch so.

      Mein Problem ist eine Anzeige aus dem Inhalt einer Variablen:
      Dim Anzeige As Byte
      Anzeige = "Beispiel" 'Inhalt ergibt sich aus der Programmierung

      LCD Anzeige 'mit welchen Befehlen kann ich den Inhalt von "Anzeige" auf dem LCD-Display darstellen ???

      Ihr mögt jetzt vielleicht über mein Problem, es gibt bestimmt größere, müde lächeln -
      aber für mich ist es zur Zeit für weitere Programmierungen sehr wichtig.
      Aus der Programmiersprache "XProfan" kenne ich die Anweisung, das die Variable "Anzeige" in
      Klammern gesetzt werden müsste, also "LCD = (Anzeige)". Bei Bascom klappt das nicht.

      Daher bitte ich Euch herzlichst um die entsprechenden Befehle - falls es überhaupt möglich ist ! ?
      Mit dankbaren Grüßen im Voraus Heiner ?(
    • Hallo und vielen Dank für Eure Bemühungen - leider erfolglos ! :?:
      Auszug aus meinem Testprogramm:
      Dim A As Byte
      A = "Beispiel"

      Do
      Cls
      Locate 1 , 1
      Lcd "Beispiel"
      Wait 1
      cls
      Locate 2 , 1
      Lcd A
      Wait 1
      Loop

      Das Ergebnis Anzeige Zeile 1:
      Beispiel
      Das Ergebnis Anzeige Zeile 2:
      66
      Gebe ich den Inhalt von A als eine Zahl ein, erfolgt die richtige Anzeige auf dem Display.
      Bei Eingabe von Buchstaben in A, erfolgt eine Umwandlung in eine Zahl !!!
      Was mache ich also falsch ?
      Nochmals Danke für eine Erklärung und evtl. Lösung.
      Gruß Heiner ||
    • Hallo

      Du hast mit "Dim a as Byte"

      eine Variable mit Name "A" vom Typ Byte (Zahlen von 0 bis 255) definiert.

      Du kannst daher nicht schreiben:
      A="Beispiel"

      Weil Beispiel in Anführungszeichen ein String-Literal (Text) ist.
      Bascom versucht die Zuweisung dennoch und weist nur den 1. Buchstaben zu.

      Das ist Ascii 66.

      Du kannst schreiben A=12
      A=100
      A=255
      A=&hFF
      A=&b10101100

      A=4+3
      A=4*4

      usw.
      aber kein Text zuweisen.

      Wenn du schreibst LDR "Beispiel"

      ist "Beispiel" wieder ein String-Literal. Also Text.

      Ausgegeben wird daher der Text an sich, nämlich der Text "Beispiel".

      Wenn du aber Variable a ausgeben willst, musst du schreiben

      LCD A.

      Dann wird ein Wert 0 bis 255 ausgegeben. Das ist auch richtig so.

      Was willst du denn bewirken mit deinem Befehl

      A="Beispiel" ???

      Was soll denn deiner Meinung nach in Variable "A" dann stehen?

      Wenn du den text "Beispiel der Variable "A" zuweisen willst,
      muss A als String dimensioniert werden.

      Dim A as String*20

      jetzt wäre A ein String und du kannst einen Text zuweisen wie
      A = "Beispiel"

      Jetzt kannst du schreiben

      Lcd A

      und auf dem Display erscheint der Text "Beispiel" (ohne Anführungszeichen).

      The post was edited 3 times, last by Mitch64 ().

    • Hallo, Mitch64, :thumbsup:
      was soll ich außer einen RIESENDANK noch sagen ?
      Ahnung müsste man eben haben ! Alles funktioniert Super. Ich bin Happy, Danke.

      Die Variante Dim A As String hatte ich ja auch probiert, aber ohne *20. Also hatte ich doch wenigstens fast
      den richtigen Weg erfasst. Aber was so ein *20 doch ausmacht.

      Erklärung:
      Später soll durch Software eine Schalterstellung ermittelt werden und in einem Merker der Name, z.B.
      "Signal N" geschrieben werden. Dieser Merker soll im weiterem Verlauf des Programms auf LCD angezeigt werden. Es soll dann die Fahrtrichtung eines Zuges (Modelleisenbahn) angezeigt werden.

      Nun kann ich endlich, dank deines Hinweises, weiter machen. Alle deine Ausführlichen Erklärungen waren sehr informativ.
      Nochmals herzlichen Dank und Grüße vom Heiner a_64_3a718cae

    • Hallo, ich danke für Eure Beiträge.
      Ja, dass mit dem LCD-Display ist falsch geschrieben - OK, aber reine Gewohnheit.

      Ein Merker ist natürlich in Bascom eine Variable vom Typ String !
      Ich kenne das von der Programmiersprache XProfan.
      Es ist also eine "Minidatei" - ein String, welche sich etwas merken soll - Merker.
      Sie kann wie bei Bascom jeden beliebigen Namen haben und sich einen Wert merken, der dann im Programm beliebig oft aufgerufen werden kann und verarbeitet wird.

      Was die Hilfe betrifft - sie ist in Englisch, hier sind leider nur leichte Kennnisse vorhanden.
      In wichtigen Fällen lasse ich es von einem Programm übersetzen - ist aber alles sehr Zeit aufwendig.

      XProfan, wahrscheinlich eine Euch unbekannte Programmiersprache, ist angelehnt an Basic und einigen anderen Sprachen. Relativ einfach. Bei Interesse mal reinschauen: xprofan.de/
      Ihr seid zwar alles Bascom-Spezies, aber man wird ja durch einen Blick nicht dümmer.

      Nochmals meinen Dank an alle die gelesen und geholfen haben. Ich kann nun endlich, nach vielen Fehlschlägen, gezielt weiter arbeiten.
      Gerne würde ich mich beim nächsten "Notfall" wieder bei Euch melden.
      Bis dahin Danke und Grüße von Heiner
    • Hallo Heiner,
      falls du zum Übersetzen nicht immer DEEPL starten möchtest, hätte ich da die Empfehlung des Meissner-Buchs.

      Rudi Einstein wrote:



      eine gute Hilfe beim Einstieg war mir seinerzeit das Buch von Stefan Hoffmann. Es enthält nach Funktionen gegliedert etliche Beispielprogramme.

      Im Buch von Marius Meissner werden alle Bascom Befehle vom englischen ins deutsche übersetzt behandelt.

      Schade nur, daß beide jeweils über 50€ kosten und gebrauchte nicht angeboten werden (Wer verkauft schon ein Nachschlagewerk..)


      Gruß Rudi
      Files
      Vielleicht fällt mir noch etwas ein...
    • Freundliches Hallo,
      ich möchte gerne noch einen Nachtrag bringen, nicht für unsere Experten sondern für interessierte Leser unseres Forums.
      Nachdem ich durch Mitch64 die Lösung meines Problems erhalten hatte, konnte ich erfolgreich weiter programmieren - und es hat Freude bereitet.

      Dim ErstesAusfahrsig as String*20
      Dim ErstesEinfahrsig as String*20

      Vom laufendem Programm wurden folgende Daten erzeugt:
      ErstesAusfahrsig = "Sig O"
      ErstesEinfahrsig = "Sig T"

      Für die LCD Anzeige steht im Programm:
      Locate 1, 1
      Lcd ErstesAusfahrsig ; " >>"

      Locate 2 , 1
      Lcd ">> " ; ErstesEinfahrsig

      Nun zeigt das LCD folgendes an:
      Sig O >>>> Sig T

      Alles ist Bestens, also nur für LCD Interessierte gedacht.
      Nochmals mein Dank an Alle die geholfen haben.

      Gruß Heiner