Hallo,
nur zur Info falls wer mal das selbe Problem hat.
Das 1 zeilige LCD Display DEM160101
http://www.csd-electronics.de/data/pdf/DEM16101H.pdf
muss mit den gänigen LCD Codesammlungen wie ein 2 zeiliges Display
initalisiert werden.
Ab dem 9 Zeichen muss zusätzlich die DDRAM Adresse geändert werden.
Beispiel Radig Ulrich 's Code für LCD Ansteuerung
1 | void lcd_print_P (unsigned char zeile,unsigned char spalte,const char *Buffer,...)
|
2 | {
|
3 | va_list ap;
|
4 | va_start (ap, Buffer);
|
5 |
|
6 | int format_flag;
|
7 | char str_buffer[10];
|
8 | char str_null_buffer[10];
|
9 | char move = 0;
|
10 | char Base = 0;
|
11 | int tmp = 0;
|
12 | char by;
|
13 | char *ptr;
|
14 | int count = 0;
|
15 |
|
16 | //Berechnet Adresse für die Zeile und schreibt sie ins DD-Ram
|
17 | zeile = LINE_ADDRESS[zeile];
|
18 | zeile += spalte;
|
19 | lcd_write(zeile,0);
|
20 |
|
21 | //Ausgabe der Zeichen
|
22 | for(;;)
|
23 | {
|
24 | // ebc wegen DEM16101
|
25 | count++;
|
26 | if ( count == 8 )//
|
27 | {
|
28 | //Berechnet Adresse für die Zeile und schreibt sie ins DD-Ram
|
29 | //lcd_write (0xC0,0); //Set DD-Ram Adresse = 40
|
30 | //oder anders...
|
31 |
|
32 | zeile = 1;
|
33 | spalte = 0;
|
34 | zeile = LINE_ADDRESS[zeile];
|
35 | zeile += spalte;
|
36 | lcd_write(zeile,0);
|
37 |
|
38 | WAIT(1000);
|
39 |
|
40 | }
|
41 | // wegen DEM16101
|
42 | by = pgm_read_byte(Buffer++);
|
43 | if(by==0) break; // end of format string
|
44 | .....
|
wenn man das Datenblatt genau ließt, ist eigentlich eh klar aber ist
halt mein erstes LCD Display das ich ansteuere.
mfg
Christian