Hallo Leute,
Ich kämpf seit ein paar Tagen damit mein Display anzusteuern und zwar nicht mit der von CCS zur Verfügung gestellten LCD-Funktion sondern mit einer etwas übersichtlicheren und vor allem flexiblen Bibliothek namens Open xLCD die von dem MCC18 Compiler von Microchip zur Verfügung gestellt wird.
Der Grund warum ich flexibeler sein muss als mit dem von CCS ist, dass mein DATA-Port aus Layoutgründen am ganzen PIC verstreut ist, aus 8 Datenleitungen besteht und ich wegen 2 HD44780 Controllern auf dem Display 2 Enable Eingänge hab.
Ich bin schon soweit vorgedrungen, dass das Display richtig initialisiert wird, die Position und Art des Cursors ändern kann.
Leider das allerwichtigste funktioniert nicht...
... Das schreiben!
Der Grund ist wahrscheinlich dass ich die Routine fürs Schreiben etwas ändern musste, dass er überhaupt compilieren konnte.
Orginal hieß die Routine:
void putrsXLCD(const rom char *buffer)
{
while(*buffer) // Write data to LCD up to null
{
while(BusyXLCD()); // Wait while LCD is busy
WriteDataXLCD(*buffer); // Write character to LCD
buffer++; // Increment buffer
}
return;
}
Die ich in
void putrsXLCD(char *buffer)
{
while(*buffer) // Write data to LCD up to null
{
while(BusyXLCD()); // Wait while LCD is busy
WriteDataXLCD(*buffer); // Write character to LCD
buffer++; // Increment buffer
}
return;
}
verändert hab, damit ich überhaupt compilieren konnte.
Nachdem ich die Position des Cursors an meine gewünschte stelle gebracht hab, rufe ich mit folgendem Befehl die Routine auf:
putrsXLCD(*"Hello World!");
In den Tutorial stand, dass der String als Vektor, oder Zeiger übergeben werden soll. Ohne den " * " hat der Compiler auch wieder gemeckert...
standardmäßig
Die Handhabung von Strings ist doch standardmäßig im Compiler implementiert, oder liegt da das Problem?
Gruß,
...Micha