Hallo alle zusammen,
zur Zeit versuche ich ein Display mit t6968 Controller mit einem
p18f4520 zum Laufen zu bringen.
Das Display anzusteuern funktioniert soweit einwandfrei. Das Problem ist
das Anzeigen von Zeichenketten. Die write_String Funktion macht
eigentlich auch das was sie soll, aber nur manchmal.
Das ist die Routine:
1 | void T6963_writeString(int x, int y, unsigned char* text) {
|
2 | int i,j;
|
3 | T6963_setAdresspointer(GLCD_TEXT_BASE+GLCD_TEXT_ROWS*y+x);
|
4 | for (i=0; text[i]!= '\0'; i++);
|
5 | for (j=0; j<i; j++) {
|
6 | T6963_writeData(text[j]-0x20);
|
7 | T6963_writeCommand(0xC0);
|
8 | }
|
9 | }
|
Folgende Codebeispiele
1 | unsigned char text[5] = {'T', 'e', 's', 't', '\0'};
|
2 | unsigned char string[] = "Noch ein Test";
|
3 |
|
4 | T6963_writeString(0,5, string); //Auf dem Display wird "Noch ein Test" angezeigt
|
5 | T6963_writeString(0,6, text); //Auf dem Display wird "Test" angezeigt
|
6 | T6963_writeString(0,7, "Schon wieder ein Test"); //Es werden nur wirre Zeichen auf dem Display angezeigt, außerdem beschwert sich der Compiler "suspicious pointer conversion".
|
Der selbe Code funktioniert auf einem Atmega ohne Probleme! Woran könnte
das liegen?
mfg
sebastian