PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16x4 Display an MEGA128 C-Control



Kevin0597
27.05.2015, 21:31
Hallo Liebes Forum :)

Ich hab mir vom C ein 16x4 Display gegönnt, Artikel.-Nr.: 183048. Mein Problem: Wie änder ich im Quelltext der Beispiel Dateien so ab, das zb: in der Dritten Zeile "Bitte Start" und in der Vierten Zeile "Drücken!" Steht ?

Steh da echt gerade etwas auf dem Schlauch :)

Schönen Abend noch.

Lg Kevin

TrainMen
28.05.2015, 16:59
hast Du schon die Libs auf das neue Display angepasst ? sonst wird das nichts mit der dritten und vierten Zeile.

Kevin0597
31.05.2015, 15:12
Hallo TrainMen,

Nein das habe ich leider noch nicht Probiert. Welche Einträge müsste ich dann ändern? Bzw welche Werte müssen Dann Geändert werden?

TrainMen
01.06.2015, 10:36
Such mal hier auf dem Netz nach 4 Zeilen Display an M32 und guck Dir den Code an und vergleiche den mit dem der Standardlib der M32. Beim überfliegen der M128 Software habe ich ähnliche Funktionen gefunden. Einfach anpassen, mach Dir vorher aber eine Kopie von Deiner Lib.

Kevin0597
02.06.2015, 12:56
Habe jetzt mal alle änderungen ausgeführt, leider bekomm ich einen Compiler fehler da wäre eine Definition Falsch.
Anbei die geänderte CClib.cc

30225

Lg Kevin
vlt. Findet jemand den Fehler.
Ansonsten werd ich wohl auf die M32 Erweiterung umsteigen müssen

Valen
02.06.2015, 15:48
Na ja, dein Compiler weißt schon was den Fehler ist. Wurde es nicht einfacher wen du uns den ganze Meldung mitteilst?

Kevin0597
04.06.2015, 18:57
Übersetze Projekt LCD 16x4 Test
C-Control Pro Compiler (C) 2013 Conrad Electronic
Durchlaufe Pass 1
Durchlaufe Pass 2
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(8,1): Semantik Fehler - Funktion initRP6Control nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(10,1): Semantik Fehler - Funktion initLCD nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(19,1): Semantik Fehler - Funktion mSleep nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(21,1): Semantik Fehler - Funktion mSleep nicht definiert
4 Fehler - Kompilation abgebrochen.
Schreibe Symboldaten - 11189 bytes..


Das zeigt mir der Compiler an :( ich werde echt nicht schlau. was muss ich ändern und wie sollte es dann aussehen ?

TrainMen
05.06.2015, 10:16
ich glaube Du hast mein Post #4 falsch verstanden. Du solltest Dir den Code der M32 4 Zeilen Display ansehen und so unterschiede zu der Original Lib erkennen, diese Erkenntniss dann an der C-Control Software ausprobieren und nicht einfach Zeilen übernehmen. Die Funktionen die Du jetzt hier übernommen hast sind ja die der M32 und können so ja nicht funktionieren.

Unregistriert
06.06.2015, 09:28
Hi,

Du solltest Dich besser noch ein wenig länger mit der Programmiersprache ansich befassen (theorie) - also wie ist ein Programm generell aufgebaut, wie definiere ich Funktionen und rufe diese auf, wie gehe ich mit verschiedenen Variablentypen um usw.
Für die C-Control gibt es sicher eine Anleitung wo das erklärt wird. Für den RP6 gibt es jedenfalls eine die sich mit dem normalen C Code befasst.

Erst dann kümmere Dich um das LCD, das wird wesentlich leichter wenn Du den Code auch lesen und nachvollziehen kannst.

Dirk
06.06.2015, 22:36
Hi Kevin,

TrainMen hatte dir ja schon die wesentlichen Infos gegeben:
Du brauchst in der RP6CClib.cc eigentlich nur die Funktion setCursorPosLCD ändern (ggf. noch die RP6_initLCD, falls das neue LCD andere Inits braucht...).

Bei LCD 16x4:

void setCursorPosLCD(byte text_line, byte pos)
{
pos = pos | 128;
if(text_line==1) pos = pos + 0x40;
else if(text_line==2) pos = pos + 0x10;
else if(text_line==3) pos = pos + 0x50;
writeLCDCommand(pos);
}

Bei den Macros kann man noch eins ergänzen, das so wie showScreenLCD arbeitet, aber für 4 Zeilen:

#define showScreenLCD4(__STRING1__, __STRING2__, __STRING3__, __STRING4__) {clearLCD(); printLCD(__STRING1__); setCursorPosLCD(1,0); printLCD(__STRING2__); setCursorPosLCD(2,0); printLCD(__STRING3__); setCursorPosLCD(3,0); printLCD(__STRING4__); }

Kevin0597
08.06.2015, 20:13
Hi Dirk,danke erstmal.
Habe jetzt auch meinen Gedankenfehler gesehn. Hätte ich selber draufkommen müssen...

Jetzt meckert mich der Compiler an es wäre was falsch....

Übersetze Projekt LCD 16x4 Test
C-Control Pro Compiler (C) 2013 Conrad Electronic
Durchlaufe Pass 1
Durchlaufe Pass 2
C:\Users\Kevin\Desktop\RP6\RP6_CCPRO_EXAMPLES_DE_2 0090131\RP6_CCPRO_EXAMPLES_DE_20090131\RP6CCLib\RP 6CClib.cc(840,5): Semantik Fehler - Funktion showScreenLCD nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(8,1): Semantik Fehler - Funktion initRP6Control nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(10,1): Semantik Fehler - Funktion initLCD nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(17,1): Semantik Fehler - Funktion showScreenLCD nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(19,1): Semantik Fehler - Funktion mSleep nicht definiert
C:\Users\Kevin\Desktop\RP6\16x4 LC-Display Demo\LCD 16x4 Test.cc(21,1): Semantik Fehler - Funktion mSleep nicht definiert
6 Fehler - Kompilation abgebrochen.
Schreibe Symboldaten - 11189 bytes..

Dirk
08.06.2015, 20:35
Hi,
du übersetzt da ein Programm für die M32.
Das geht nicht in CC!
Also:
RP6CClib.cc ändern, wie beschrieben.
Dann testen mit einem Beispiel aus den CCpro Examples, z.B. Example_01_HelloWorld.