-
        

Ergebnis 1 bis 4 von 4

Thema: LCD Text in SRAM schreiben

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    10.06.2005
    Ort
    Buchbrunn
    Alter
    28
    Beiträge
    68

    LCD Text in SRAM schreiben

    Anzeige

    Hallo,

    nachdem ich mich in letzter zeit jetzt endlich mal ein bisschen mit dem Programmieren beschäftigt habe ging bis jetzt alles einwandfrei nur jetzt hab ich ein Problem wo ich einfach nicht mehr weiter weiß.
    Ich hab mir das Programm von Claus Kühnels AD-Wandler aus seinem Buch abgeschrieben (BASCOM AVR Seite 264) und ein bisschen modifiziert, so das der Text jetzt vom Display angezeigt wird. Allerdings flackerte das Display sehr stark da der Mega8 das Display immer wieder gelöscht und dann neu beschrieben hat.
    Dann hab ich einfach das CLS rausgelassen und siehe da es flackert nicht mehr allerdings bleibt jetzt im Display die Letzte Ziffer immer stehen (wenn man den Poti ganz aufdreht steht dort ja "1023" und wenn man dann auf einen Wert unter 1000 dreht bleibt der 3er immer dort stehen).

    Jetzt hab ich irgendwo im Internet gelesten das das Display nicht mehr so stark flackert wenn man den Displaytext erst in den SRAM Schreibt und von dort das Display immer wieder aktualisiert, aber ich hab leider kein Beispiel dafür gefunden wie das gehen soll und wenn ich in Bascom einfach anstatt LCD, Z1( und davor oben noch DIM Z1 as String*16)schreib dann meckert Bascom rum.

    Jetzt hab ich einfach keine Idee mehr wie ich den Text sonst in den Sram krieg, könnt ihr mir da helfen?? Ich habs zwar schon mit der Suche probiert aber die hat nix ausgespuckt.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Hi,
    schreib doch einfach hinter deinen LCD Befehl noch einige Leerzeichen.
    Dann wird bei einem enstelligen Ergebnis der Rest von vorhin überschrieben. Ist nicht so schick, geht aber.
    Also LCD xxxx ; " "
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,

    einfacher geht's wenn du den neuen wert mit dem alten vergleichst und erst dann auf's Display schreibst.
    Dann noch die entsprechenden Stellen vorher löschen.
    Also zB.
    Locate 1,1
    Lcd " "
    Allerdings flackert es dann auch, wenn der Wert nicht lange genug stehen bleibt.

    Einfacher geht das mit dem Format Befehl.
    Code:
    Dim Wert As Integer
    Dim Lcd_anzeige As String * 4
    
    Wert = 1
    
    Lcd_anzeige = Str(wert)
    Lcd_anzeige = Format(lcd_anzeige , "0000")
    Locate 1 , 1
    Lcd Lcd_anzeige
    
    End
    Dann steht bei einem Wert von "1" im Display "0001"
    Geht aber auch mit Leerzeichen vornedran:
    Code:
    Lcd_anzeige = Format(lcd_anzeige , "    ")
    Oder mit einer If-Then Abfrage je nach Wert Leerzeichen davorsetzen:

    Code:
    Lcd_anzeige = Str(wert)
    
    If Wert < 10 Then
       Lcd_anzeige = "   " + Lcd_anzeige
    End If
    If Wert < 100 And Wert > 9 Then
       Lcd_anzeige = "  " + Lcd_anzeige
    End If
    
    If Wert < 1000 And Wert > 99 Then
       Lcd_anzeige = " " + Lcd_anzeige
    End If
    
     Locate 1 , 1
     Lcd Lcd_anzeige
    Der Format Befehl gefällt mir aber am besten

    Hat man positive und negative Zahlen, dann kann man beim Format Befehl Format zB. ein "+0000" schreiben, dann wird das Vorzeichen davorgesetzt.
    Allerdings ist "0" dann "+0000" und nicht "0000".
    Der String muß dann in der Dimensionierung auch um eins größer sein, eben wegen dem Vorzeichen.


    Gruß
    Christopher

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    10.06.2005
    Ort
    Buchbrunn
    Alter
    28
    Beiträge
    68
    Vielen Dank für die echt schnelle Hilfe, ich hab leider nicht früher anworten können.

    aber nochmal vielen vielen dank

Berechtigungen

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