mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CGRAM beschreiben


Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ja schon ein paar Themen hier die dieses behandeln. Hab sie mir 
auch alle durchgelesen.
Bräuchte aber nochmal hilfe.

Ich habe bis vor kurzem noch die LCD-Lib von Fleury verwendet um 
selbsdefinierte Zeichen ins LCD-RAM zu schreiben.
Die kann ich aber jetzt nicht mehr anwenden weil ich auf ein DOGM LCD 
umgestiegen bin.

Jetzt meine Frage, wie bekomme ich meine eigenen Zeichen ins CGRAM?

Die Tabelle hab ich schon:
static const unsigned char symbol[] PROGMEM =
{
  0x90, 0x98, 0x9C, 0x9E, 0x9C, 0x98, 0x90, 0x80,
  0x00, 0x0A, 0x1B, 0x1B, 0x03, 0x1F, 0x0E, 0x00,
  0x1F, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1F,
  0x00, 0x0A, 0x1F, 0x1F, 0x1F, 0x0E, 0x04, 0x00,
  0x15, 0x0E, 0x15, 0x0E, 0x04, 0x04, 0x04, 0x00,
  0x04, 0x0E, 0x1F, 0x11, 0x11, 0x11, 0x1F, 0x00,
  0x04, 0x0E, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x00,
  0x04, 0x04, 0x04, 0x04, 0x1F, 0x0E, 0x04, 0x00
};

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Jetzt meine Frage, wie bekomme ich meine eigenen Zeichen ins CGRAM?
Nun, was hast Du denn (inbesondere entsprechend den Dir gelesenen 
Beiträgen) versucht und welche Probleme treten dabei auf?

Ansonsten muss man nämlich antworten: Schreib sie einfach rein.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versucht noch nichts.
In der Fleury gibts ja eine fertige Funktion die das macht.

"Einfach reinschreiben" is ja nicht.

Ich verwende nur eine abgespeckte LCD-Lib die Zeichen ausgeben kann.
Ich bräuchte jetzt hilfe beim erstellen einer passenden Funktion.

Oder gibts da was fertiges das ich verwenden könnte?

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> In der Fleury gibts ja eine fertige Funktion die das macht.

Wo? In http://homepage.hispeed.ch/peterfleury/lcdlibrary.zip habe ich 
nichts dergleichen gefunden. Bin ich blind?

Iwan

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gab einen erweiterten Befehlssatz:
/* Store individual character from flash on cgram */
extern void lcd_putc_cgram_p(const char *progmem_s, unsigned char _position);


/* print string from EEPROM */
extern void lcd_puts_eep(const unsigned char *eep); 


/* Store individual character from EEPROM on cgram */
extern void lcd_putc_cgram_eep(const unsigned char *eep, unsigned char _position);

Ausschlaggebend dafür ist die Funktion "lcd_command"
Die wiederum die Funktion "lcd-Write" nutzt.

Verwendet habe ich immer diese Funktion:
/* Store individual character from flash on cgram */
void lcd_putc_cgram_p(const char *progmem_s, unsigned char _position)
{
  lcd_command((1<<LCD_CGRAM)+_position*8);
  register char c;
  register char x1;
    for (x1=0;x1<=7;x1++)
  { 
    (c = pgm_read_byte(progmem_s++));  
        lcd_putc(c);
}
  lcd_clrscr();
}

vielleicht gehts einfacher.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> versucht noch nichts.

Dann versuch es mal.

Manfred W. schrieb:
> In der Fleury gibts ja eine fertige Funktion die das macht.

Na dann...

Manfred W. schrieb:
> "Einfach reinschreiben" is ja nicht.

Warum?

Manfred W. schrieb:
> vielleicht gehts einfacher.

Was ist daran zu kompliziert?

Wir geben Dir gerne Hilfe zur Selbsthilfe. Aber versuchen, lesen und 
verstehen musst Du selbst.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grrrr schrieb:
> Manfred W. schrieb:
>
>> "Einfach reinschreiben" is ja nicht.
>
>
>
> Warum?
>
>
>
> Manfred W. schrieb:
>
>> vielleicht gehts einfacher.
>
>
>
> Was ist daran zu kompliziert?

Muß ich denn wirklich alle funktionen von der Lib übernehmen?
Darum die Frage obs auch einfacher geht.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> Muß ich denn wirklich alle funktionen von der Lib übernehmen?

Nein. Lass doch die weg, die Du nicht brauchst.

Manfred W. schrieb:
> Darum die Frage obs auch einfacher geht.

Was hier einfach fehlt ist eine saubere und vollständige 
Problembeschreibung.

Und im Zusammenhang mit diesem Forum solltest Du zeigen, das Du Dich 
selbst nachhaltig bemühst das Problem selbst zu lösen und nur das zu 
fragen, was Du bei diesen Bemühungen nicht selbst lösen kannst.

Das einfache "Hilfe" rufen ist vielleicht ausreichend, wenn wir Dich in 
einiger Entfernung vom Strand im Wasser mit den Armen rudern sehen. Da 
werden wir unter Inkaufnahme eines möglichen Irrtums erstmal zu Dir 
hinschwimmen und erst wenn wir Dich am Ufer haben fragen was denn 
passiert ist. Aber hier brauchen wir einfach mehr Informationen.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grrrr schrieb:
> Nein. Lass doch die weg, die Du nicht brauchst.

Wenn das so einfach gehn würde.
In jeder Funktion sind weitere Funktionen.
Da kann man gleich die komplette Lib übernehmen.

Ich hoffe immer noch auf Tips "wie" man das CGRAM beschreibt.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> Ich hoffe immer noch auf Tips "wie" man das CGRAM beschreibt.

Den haben wir Dir schon gegeben. Schreib einfach rein.

Erwartest Du im Ernst von uns, das wir Dir hier ein fertiges Programm 
liefern?
Entweder antworten hier Hobbyisten, die sich natürlich nur mit dem 
beschäftigen was sie selbst auch interesiert. Oder es sind Profis die 
dafür bezahlt sein wollen. Beide aber helfen Dir hier sehr gerne Dir 
selbst zu helfen.

Aber: Ich wiederhole mich und werde mich dann raushalten bis Du 
substantielle Informationen lieferst und Benühungen zeigst, das Problem 
selbst zu lösen.

Grrrr schrieb:
> Und im Zusammenhang mit diesem Forum solltest Du zeigen, das Du Dich
> selbst nachhaltig bemühst das Problem selbst zu lösen und nur das zu
> fragen, was Du bei diesen Bemühungen nicht selbst lösen kannst.
>
> Das einfache "Hilfe" rufen ist vielleicht ausreichend, wenn wir Dich in
> einiger Entfernung vom Strand im Wasser mit den Armen rudern sehen. Da
> werden wir unter Inkaufnahme eines möglichen Irrtums erstmal zu Dir
> hinschwimmen und erst wenn wir Dich am Ufer haben fragen was denn
> passiert ist. Aber hier brauchen wir einfach mehr Informationen.

Autor: Lokus Pokus (derschatten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grrrr schrieb:
> Entweder antworten hier Hobbyisten, die sich natürlich nur mit dem
>
> beschäftigen was sie selbst auch interesiert.

Ahhh, jetzt ist mir so einges klar...

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred W. schrieb:
> Ahhh, jetzt ist mir so einges klar...

Du mich auch.

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.