mikrocontroller.net

Forum: Projekte & Code Textausgabe auf 2-Zeilen-LCD


Autor: Axel Schindler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich hoffe ich bin hier nicht offtopic.
Ich habe mir eine Ansteuerung eines 2x16-Zeichen LCDs 
(HD44780-kompatibel) zusammengebastelt und habe jetzt eine Funktion 
geschrieben der man einfach zwei Strings für die 1. und 2. Zeile 
übergibt und die diese dann aufs Display befördert.
Leider habe ich nur Grundkenntnisse in C und hab deshalb das Ganze wohl 
etwas sehr umständlich gemacht. Vorallem könnte ich mir vorstellen, dass 
es spezielle String-funktionen gibt die etwas eleganter sind. Und wie 
kann ich den Cursor an den Anfang der zweiten Zeile setzten, damit ich 
in der 1. Zeile nicht alle 40 Zeichen vollschreiben muss? Ich will ja 
auch nicht unnötig Speicher verschwenden. Ich habe auch noch die 
komplette Datei mit allen anderen Funktionen angehängt falls sich jemand 
dafür interessiert.

Danke Axel

void PutStringToLcd(char row1[17], char row2[17])
{
  unsigned char i=0, j=0;
  char Ausgabe[57];
  for (i=0; i<57 ;i++) {Ausgabe[i] = 0x20;}  //String "löschen"

  while (row1[j] != 0x00)
  {
    Ausgabe[j] = row1[j];      // Einschreiben von 1. Zeile
    j++;
  }
  j=0;
  while (row2[j] != 0x00)
  {
    Ausgabe[40+j] = row2[j];   // Einschreiben von 2. Zeile
    j++;
  }

  for (i=0;i<57;i++)       // Ausgabe des gesamten Strings
  {
    PutCharToLcd(Ausgabe[i], DATA_WRITE); //schreibt 1 Char
  }
}

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal ins datenblatt und du wirst dort die startadresse der zweiten 
zeile finden..:D..und dort kannst du den cursor hinsetzten...
also ich hab mir mal deinen code angeschaut...mmmhh sehr 
speicherverschwendet...versuch mal mehr mit konstanten statt mit 
variablen zu arbeiten..also gutes beispiel solltest du diesen treiber 
mal anschauen:


http://www.mysunrise.ch/users/pfleury/lcdlibrary.zip

Autor: Bouyoumad (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Herr Schindler!

haben Sie vieleicht ein Sourcecode für die Programmierung einen
3x3 Matrix-Tastatur.

dancke im voraus.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich heiße nicht Schindler.

Trotzdem mal ein Beispiel zur Matrixtastatur in Assembler und C.
Sollte leicht auf 3*3 und den AVR umzuschreiben sein.

http://www.specs.de/~danni/appl/soft/keyscan/index.htm


Peter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.