-         

Ergebnis 1 bis 8 von 8

Thema: Bargraph Anzeige mit selbstdefinierten Zeichen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.06.2005
    Beiträge
    23

    Bargraph Anzeige mit selbstdefinierten Zeichen

    Anzeige

    Hallo zusammen,

    ich möchte gerne im Rahmen meines Projekts eine Füllstandsanzeige als Bargraph realisieren. Bisher habe ich das so gemacht:

    Bar:
    For I = 1 to Z ' Z <= 16 Max. Anzeigewert
    Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31 ' Zeichen „█“
    Locate 2 , Z 'Position des Zeichens 2. Zeile
    Lcd Chr(0)
    Z = Z + 1
    Next
    Return

    Das Ergebnis ist leider unbefriedigend, da das „Aufbauen“ der Bargraph Anzeige deutlich wahrnehmbar ist und als sehr unruhig empfunden wird. Ich Suche nun nach einer Möglichkeit, den auszugebenen String vorher zusammenzubauen. Etwa so:

    For I = 1 to Z ' Z <= 16 Max. Anzeigewert
    Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31 ' Zeichen „█“
    L = L + Lcd Chr(0) ' Länge String 1 – 16 Zeichen
    Lowerline
    Lcd L
    Next

    Die Syntax um den String zusammenzubauen ist natürlich völlig daneben. Genau das ist mein Problem. Kann mir jemand sagen, wie man das in Bascom realisiert?

    Anschließend noch eine kurze Frage zum Umgang mit der ISP Schnittstelle am Sisy Mega 8 Board.
    Nach meiner Erfahrung laufen Programme auf dem Board entweder überhaupt nicht oder stürzen nach kurzer Zeit ab, wenn das Board per Parallelschnittstelle mit dem PC nach der Programmierung verbunden bleibt. Ist das Phänomen auf einen unzureichenden internen Pullup Widerstand an der Reset Leitung zurückzuführen?

    Danke für Eure Hilfe

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    nimmst dir die beschreibung vom display und schreibst dir in asm (kannste in Bascom einbinden) eine routine, was die 7 freien buchstaben belegt.
    aber die bascom-routine die du anwendest, ist nicht wesentlich anders als dann dein asm-programm.
    du kannst aber auch ein 4zeiliges oder mehrzeiliges display zulegen dieses hochkannt stellen und damit nur die balken z.b. darstellen.
    mfg pebisoft

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Am besten sieht es aus, wenn du nicht den ganzen BAR frisch zeichnest, sondern nur die differenz zu vorher. Das heißt, die gehst mit "locate" an das erste zu ÄNDERNDE Zeichen und pinselst nur das raus (blank oder 31), was zu ändern ist.
    Beispiel:
    1 der wert ist eins größer als vorher--> du machst einen Block hinten drauf
    2 der wert ist ein kleiner --> du überschreibst den letzten block mit 0,0,0,
    3 der wert ist gleich--> du machst überhaupt nix
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    das Zeichen mußt du nicht selbst bauen, das gibt's im Zeichensatz. (255 ?)
    Du kannst deine "Auflösung" noch erhöhen, in dem du nur halbe Blöcke machst, oder nur Linien.
    Das Problem dabei ist die Lücke zwischen den einzelnen "Hardware-Blöcken" auf dem Display. Das sieht halt nicht so schön aus.
    Vielleicht kann man es aber so machen, daß man den Block in 2 Blöcke unterteilt, zwischen denen eine Lücke ist.
    Dann hätte man 32 Stufen zur Verfügung.
    Muß ich mal ausprobieren.
    Also so:
    Deflcdchar 0 , 24 , 24 , 24 , 24 , 24 , 24 , 24 , 24
    Deflcdchar 1 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3

    Gruß
    Christopher

  5. #5
    Gast
    Hallo zusammen,

    erstmal vielen Dank für die Antworten. Ich werde erstmal PicNicks Vorschlag ausprobieren, also beim ersten Mal die Anzeige Zeichenweise aufbauen und dann nur noch die Änderungen einblenden.
    Christofer, das ASCII Zeichen bedeutet "", also nichts. Mit diesem Zeichen kann man bei verschiedenen Betriebssystemen unsichtbare User anlegen. Ich schaue mir die ASCII Tabelle aber noch einmal an.

    Kann mir vielleicht doch jemand einen Tip geben, wie aus einem Zeichen ein String zusammengebaut werden kann?

    Hat jemand eine Erklärung zu meiner 2. Frage bezüglich des Verhaltens der ISP Schnittstelle?

    Danke und Gruß

    Horst

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    ISP Kommt bei mir auch vor. Wenn ich aus Stabilität wert lege, steck ich ab. Ich glaub', die Software resetted hin und wieder einfach so.

    string & zeichen

    DIM EinString as string *24
    DIM Zeichen(24) as byte at Einstring overlay

    Es ist dann jedesmal der gleiche Speicher, aber verschieden anzuquatschen

    willst du z.B EIN Zeichen als String haben

    Zeichen(1) = "X"
    Zeichen(2) = 0

    Print Einstring

    logo ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Gast
    Hallo Robert,
    danke für Deine Antwort bez. ISP. Was die Stringverarbeitung angeht, meine ich etwas anderes. Ich habe ein Zeichen, z.B.:
    Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31 ' Zeichen „¦“ .
    Daraus möchte ich einen in der Länge variablen String zusammenbauen z.B. "¦¦¦¦¦¦¦¦", den ich in einem Zuge auf dem LCD ausgeben kann.

    Gruß

    Horst

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Da ich kein's habe, bin ich mit LCD schwach.
    Vielleicht kann sich "chr-mt" nochmals begeistern, der scheint sich besser auszukennen
    tut leid
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •