-         

Ergebnis 1 bis 6 von 6

Thema: Laufchrift auf LCD 8-[

  1. #1

    Laufchrift auf LCD 8-[

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Ich habe mein 16*2-LCD mit meinem ATMega8 ansteuern versucht. Mit Programmierung über AVR Studio habe ich noch Probleme, wie kann ich Laufschrift von zeile aus 24 zeichen auf dem LCD zu programmieren?
    Bitte kann jemand mir helfen

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Etwas sehr wenig Info zu deinem Problem. Progst du in C oder Assembler, was hast du schon geschrieben, was für eine LCD-Lib verwendest du, wie sieht deine Hardware aus. Wenn all das da ist wird dir sicher jemand helfen können.
    Hubert

  3. #3
    Ich wollte diese laufschrift auf C programmieren. abre das klappt immer nicht. hat jemaend diese Programm?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.183
    Das AVR-Studio kannst du dir von http://www.atmel.com/dyn/products/to...?family_id=607
    kostenlos herunterladen.
    Hubert

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794
    Hi,

    die Frage nach C oder Assembler erübrigt sich, wenn man den Forentitel betrachtet => C.
    Die Frage nach der Hardware wurde auch beantwortet: Mega8, 16x2 LCD.

    Zum Problem:
    Du könntest das so lösen, dass du einen String hast, der eben die 24 Zeichen (oder auch mehr enthält):
    Code:
    uint8_t *langekette
    Und dann hast du einen Indexwert
    Code:
    uint8_t index
    , der bei einem Timerinterrupt hochgezählt wird (also jedes mal, wenn die Laufschrift ein Zeichen weiter gehen soll). Danach (im gleichen Interrupt) wird eine Methode aufgerufen, die 16 Zeichen auf das LCD packt. Und zwar müsste diese Methode vom index an bis zum Ende und dann noch entsprechend viele Zeichen vom Anfang schreiben. Es könnte so aussehen (ungetestet, teilweise pseudocode):
    Code:
    void laufschrift_aktualisieren(void)
    {
      uint8_t *temp;
      uint8_t i;
      *temp = *langekette;
      *temp = *temp + index;
      
      while(*temp)
      {
        LCD_PUT(*temp); // ein zeichen auf's LCD
        *temp++;
        i++;
      }
      *temp = *langekette;
      for (; i <= 16; i++)
      {
        LCD_PUT(*temp)
      }
    }
    Mal gucken, ob bessere Ideen kommen, gibt sicherlich noch einige Verbesserungsmöglichkeiten. Für Erklärungen einfach nochmal nachfragen.

    Gruß, CowZ

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Gibt es in Fleuries Bibliotheken nicht Anweisungen für den LCD-Controller für Shift-Befehle? Ansonsten Softwaremäßige Lösung:
    String in "Schattenspeicher" packen und immer 16 Zeichen lange Ausschnitte zeigen lassen...

Berechtigungen

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