Forum: Mikrocontroller und Digitale Elektronik CGRAM beschreiben


von Lokus P. (derschatten)


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:
1
static const unsigned char symbol[] PROGMEM =
2
{
3
  0x90, 0x98, 0x9C, 0x9E, 0x9C, 0x98, 0x90, 0x80,
4
  0x00, 0x0A, 0x1B, 0x1B, 0x03, 0x1F, 0x0E, 0x00,
5
  0x1F, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1F,
6
  0x00, 0x0A, 0x1F, 0x1F, 0x1F, 0x0E, 0x04, 0x00,
7
  0x15, 0x0E, 0x15, 0x0E, 0x04, 0x04, 0x04, 0x00,
8
  0x04, 0x0E, 0x1F, 0x11, 0x11, 0x11, 0x1F, 0x00,
9
  0x04, 0x0E, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x00,
10
  0x04, 0x04, 0x04, 0x04, 0x1F, 0x0E, 0x04, 0x00
11
};

von Grrrr (Gast)


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.

von Lokus P. (derschatten)


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?

von Иван S. (ivan)


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

von Lokus P. (derschatten)


Lesenswert?

Es gab einen erweiterten Befehlssatz:
1
/* Store individual character from flash on cgram */
2
extern void lcd_putc_cgram_p(const char *progmem_s, unsigned char _position);
3
4
5
/* print string from EEPROM */
6
extern void lcd_puts_eep(const unsigned char *eep); 
7
8
9
/* Store individual character from EEPROM on cgram */
10
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:
1
/* Store individual character from flash on cgram */
2
void lcd_putc_cgram_p(const char *progmem_s, unsigned char _position)
3
{
4
  lcd_command((1<<LCD_CGRAM)+_position*8);
5
  register char c;
6
  register char x1;
7
    for (x1=0;x1<=7;x1++)
8
  { 
9
    (c = pgm_read_byte(progmem_s++));  
10
        lcd_putc(c);
11
}
12
  lcd_clrscr();
13
}

vielleicht gehts einfacher.

von Grrrr (Gast)


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.

von Lokus P. (derschatten)


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.

von Grrrr (Gast)


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.

von Lokus P. (derschatten)


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.

von Grrrr (Gast)


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.

von Lokus P. (derschatten)


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...

von Grrrr (Gast)


Lesenswert?

Manfred W. schrieb:
> Ahhh, jetzt ist mir so einges klar...

Du mich auch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.