Cursor problem beim M50530 LCD Controller

Gast #1128767
Hallo Kollegen,

also ich habe wirklich sehr viel probiert und auch den Datenblat zum 
Controler mehrmals gelesen. Aber komme einfach nicht mehr weiter.

Deswegen bitte ich um eure Hilfe.

vorweg, ich habe ATmega8+STK500+Samsung LCD 2138A (m50530)
http://lcd-linux.sourceforge.net/pdfdocs/M50530.pdf

Möchte große eigene Zeichen in den CGRAM schreiben, habe auch geschaft.
Allerdings seit ich dies gemacht habe setzt sich mein Kursor (aus mir 
unerklerlichen Gründen) völlig an andere Stelle auf dem LCD.

z.B:
LCD_setCursorPos(2,0); // Setze kursor 3.Zeile Spalte 0
LCD_write("abcd");     // schreibe abcd

aber er schreibt mitte 7. zeile...

Mein CGRAM Kapazität soll 64Word sein --> kursor adresse 0xC0
Und der 1.Zeichen ist mit 0xF8 auszulesen. Siehe S.14
Damit dies so funktioniert habe ich beim initialisieren als (S.27) WD 
0xDa
eingeben müssen. Mit 0xD8 funktioniert es aber kann halt nicht in CGRAM 
schreiben.
// DB7, DB6, DB4, DB3   0xDA = 11011010 //0xD8 = 216 = 11011000
LCD_sendByte(0xDA, 0); //Set function mode (8Bit, 5x7 Character)

Ich hoffe dies alles ist aussagekräftik.

Ich bin wirklich ein wenig verzweifelt!
Bitte um Hilfe...

grüße
Angehängte Dateien:
Gast #1198869
also das problem liegt beim setzen des Cursors.

hier der funktionsfähige code dazu:
1
void LCD_setCursorPos(const uint8_t y, const uint8_t x)
2
{
3
  // Adresse aus x und y berechnen
4
  // Adressen sind wie folgt: Zeile 0 = 0; Zeile 1 = 64; Zeile 2 = 128; Zeile 3 = 192;
5
  //               Zeile 4 = 0+24; Zeile 5 = 64+24; Zeile 6 = 128+24; Zeile 7 = 192+24
6
   //  uint8_t address = x + ((y % 4) << 6);
7
  uint8_t address = x + y * 48;
8
  if (y > 3)
9
    address += 88;
10
   // address += 24;
11
  LCD_sendByte(address, (1<<LCD_OC1_PIN) | (1<<LCD_OC2_PIN));
12
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.