PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6v2 CC-PRO MEGA128 LCD Fehler



Kevin0597
31.03.2013, 19:04
Hey liebe Community,

ich habe seit neuestem folgendes Problem.
Wenn ich Egal welches Beispielprogramm benutze, das auf das LCD zugreift, enstehen verwirrende Zeichen auf dem LCD.
Im Programm sind diese aber nicht definiert. Mache ich etwas im Programm falsch oder ist etwas mit dem LCD nicht inordnung?

Was mich wundert. Habe mal das mit einem Anderen Programm aus dem Internet Probiert, da funktioniert es.
Aber warum funktoniert es bei den Beispielprogrammen nicht ?

Vllt. könnt ihr mir weiter helfen.
Ich benutze dieses Display:
http://www.conrad.de/ce/de/product/191621/Arexx-Display-RP-DSP88-fuer-RP5RP6-Roboter-RP-DSP88/?ref=detview1&rt=detview1&rb=2

Vielen Dank für eure Hilfe

euer Kevin :)

Dirk
31.03.2013, 20:54
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.

/************************************************** *****************************
* 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(" \\_-_-_-_-_-_-_-_-_-_/ (file://\\_-_-_-_-_-_-_-_-_-_/) ");
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!
// ---------------------------------------
}

robo_tom_24
01.04.2013, 00:23
Wenn ich mir die Zeichentabelle im Datenblatt ansehe, dann sieht es so aus, als sendest du für die Spalteninformation nicht LL** sondern HH**.

grüße

Kevin0597
01.04.2013, 08:53
Hey danke für die Antworten.
@ Dirk: Ich habe mal versucht den Code zu Kompilieren, nur dann kommt ein Kompilerfehler. (Hab dir mal das Projekt als ZIP mal hochgeladen. Der Fehler im Klartext:
Übersetze Projekt LCD#1
C-Control Pro Compiler (C) 2011 Conrad Electronic
Durchlaufe Pass 1
Durchlaufe Pass 2
D:\RP6CCLib.cc(408,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
D:\RP6CCLib.cc(410,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
D:\RP6CCLib.cc(427,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
D:\RP6CCLib.cc(429,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
D:\RP6CCLib.cc(839,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
5 Fehler - Kompilation abgebrochen.
Schreibe Symboldaten - 8462 bytes..

Vlt wäre es Möglich, das du mir ein Fertig Kompiliertes Projekt mal schickst, dann probier ich es nochmal.

@ robo_tom_24: Okay. Aber warum machd das Display das nur bei den Beispielprogrammen und nicht bei den selbst geschriebenden. ??

lg kevin
25014

Dirk
01.04.2013, 09:57
@kevin:
Ich habs nochmal probiert: Das Prog kompiliert ok. Timer 3 wird auch gar nicht im Programm verwendet.

Der Semantik-Fehler ist in der RP6CCLib.cc???

Kevin0597
01.04.2013, 10:42
Nach dem Kompilieren kommt der Fehler ja. Da steht wie Oben :

Übersetze Projekt LCD#1
C-Control Pro Compiler (C) 2011 Conrad Electronic
Durchlaufe Pass 1
Durchlaufe Pass 2
D:\RP6CCLib.cc(408,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
D:\RP6CCLib.cc(410,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
D:\RP6CCLib.cc(427,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
D:\RP6CCLib.cc(429,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
D:\RP6CCLib.cc(839,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
5 Fehler - Kompilation abgebrochen.
Schreibe Symboldaten - 8462 bytes..

und in der Ansicht wird die RP6CCLib.cc angezeigt. Und nach anklicken springt er an die fehlerhaften teile.
Es scheint also als käme der Fehler aus der RP6CCLib.cc

Wärs möglich, dass du mir das Projekt oder zumindest die Korrigierte RP6Lib zuschickst ? :D

lg kevin
2501525016

robo_tom_24
01.04.2013, 11:20
Hast du vielleicht hardwaremäßig was geändert? sodass unabsichtlich ein HIGH Pegel entsteht?

Kevin0597
01.04.2013, 11:45
Nein es wurde nix verändert .
Das ist es ja was mich wundert. Ich hab das LCD gekauft so wies war und habs montiert.
Aber das der fehler ja nur bei den Beispielprogrammen auftritt und nicht bei dem Servoprogramm aus dem Interent.

lg kevin

SlyD
05.04.2013, 19:19
Hallo,

nutzt Du die aktuellen Beispielprogramme (v. 20090131)?
Bei den älteren war mal das Timing zu knapp bemessen.

Oh und die verschiedenen CC-PRO IDE Versionen könnten sich evtl. auch
anders verhalten - das ist aber nur eine Vermutung.

MfG,
SlyD

Kevin0597
14.04.2013, 20:12
mhh neein die neuen bsp programme hab ich noch nicht ausprobiert :)
muss ich mal machen :D

Kevin0597
16.04.2013, 19:08
Hey hab heute mal die neuen BSP programme probiert und ich muss sagen dass diese funktionieren ;)

danke für eure Hilfe :D