Ich kenne jetzt dein Programm nicht, muss also raten.
Du kannst dir mal den Zeichensatz der M128 per UART und LCD ausgeben lassen.
Ist da alles ok? Poste evtl. die Ausgabe hier.
Code:
/*******************************************************************************
* RP6 C-Control PRO M128 Erweiterungsmodul
* ----------------------------------------------------------------------------
* LCD Zeichensatz Beispielprogramm
* ----------------------------------------------------------------------------
* Dieses Programm gibt den Zeichensatz auf dem LCD (sofern vorhanden) aus.
*
* Hinweis:
* Für allgemeine Programmierhinweise zur CCPRO schauen Sie sich bitte die
* CCPRO Dokumentation und die zugehörigen Beispielprogramme an!
* Es sei auch nochmals darauf hingewiesen, dass die normalen Beispielprogramme
* für die CCPRO nur zum Teil direkt auf dem RP6-CCPRO Modul laufen.
* Die Anschlussbelegung ist natürlich komplett anders als auf dem
* C-Control Application Board. Auch die LCD Ansteuerung ist leicht anders,
* da hier noch zusätzliche LEDs mit an dem Schieberegister angeschlossen sind.
* --> Die C-Control Beispielprogramme müssen ein klein wenig angepasst
* werden bevor sie auf diesem Modul laufen können!
*
* *****************************************************************************
* Der Roboter bewegt sich in diesem Beispielprogramm NICHT und kann
* am Rechner angeschlossen bleiben!
******************************************************************************/
// WICHTIG: Immer die RP6CCLib mit einbinden:
#include "../../RP6CCLib/RP6CCLib.cc"
void main(void)
{
// WICHTIG! Immer als erstes aufrufen:
RP6_CCPRO_Init(); // Auf Startsignal warten, LCD und andere Dinge initialisieren !
// ------------------------------------------------------
// Zwei Zeilen Text mit dem LCD anzeigen:
showScreenLCD("RP6 CCPRO M128", "LCD Zeichensatz!");
// Text über serielle Schnittstelle ausgeben:
newline(); // Neue Zeile
println(" ________________________");
println(" \\| RP6 ROBOT SYSTEM |/");
println(" \\_-_-_-_-_-_-_-_-_-_/ ");
newline();
println(" Auf geht's! ");
newline();
// 2 Sekunden Pause:
AbsDelay(1000);
// LCD löschen:
clearLCD();
// Neue Zeile:
newline();
// ------------------------------------------------------
// LCD und RS232 Zeichensatz:
byte i, pos; // Variablen deklarieren
// ---------------------------------------
// Hauptprogramm:
// Terminal Ausgabe:
print("C-Control Pro IDE Zeichensatz:");
newline();
print("Zeichen 32..63:");
newline();
for (i = 32; i <= 63; i++) {
Serial_Write(0, i);
}
newline();
print("Zeichen 64..95:");
newline();
for (i = 64; i <= 95; i++) {
Serial_Write(0, i);
}
newline();
print("Zeichen 96..127:");
newline();
for (i = 96; i <= 127; i++) {
Serial_Write(0, i);
}
newline();
print("Zeichen 160..191:");
newline();
for (i = 160; i <= 191; i++) {
Serial_Write(0, i);
}
newline();
print("Zeichen 192..223:");
newline();
for (i = 192; i <= 223; i++) {
Serial_Write(0, i);
}
newline();
print("Zeichen 224..255:");
newline();
for (i = 224; i <= 254; i++) {
Serial_Write(0, i);
}
Serial_Write(0, 255);
newline();
println("Das Ende ...");
// LCD Ausgabe:
printLCD("Zeichen 32..63:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 32; i <= 63; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
AbsDelay(10000);
clearLCD();
printLCD("Zeichen 64..95:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 64; i <= 95; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
AbsDelay(10000);
clearLCD();
printLCD("Zeichen 96..127:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 96; i <= 127; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
AbsDelay(10000);
clearLCD();
printLCD("Zeichen 160.191:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 160; i <= 191; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
AbsDelay(10000);
clearLCD();
printLCD("Zeichen 192.223:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 192; i <= 223; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
AbsDelay(10000);
clearLCD();
printLCD("Zeichen 224.255:");
AbsDelay(3000);
pos = 0;
clearLCD();
for (i = 224; i <= 254; i++) {
writeCharLCD(i);
pos++;
if (pos > 15) {
setCursorPosLCD(1, 0);
pos = 0;
}
}
writeCharLCD(255);
AbsDelay(10000);
clearLCD();
printLCD("Das Ende ...");
while(true) {
}
// Ende des Hauptprogramms!
// ---------------------------------------
}
Lesezeichen