PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C LCD und Strings



UweMD
01.10.2004, 14:44
Hallo....


ich habe von Roboter- teile das I2C LCD 4X20

Meine Hardware RP5, EW Platine u. CC2.
Das LCD ist an den I2C Bus der CC2 angeschlossen.

wenn ich auf das LCD schreiben will mach ich das mit:



ModulWrite (0XC6,0 ,12); // löscht das LCD
ModulWrite (0XC6,0 ,'H');
ModulWrite (0XC6,0 ,'A');
ModulWrite (0XC6,0 ,'L');
ModulWrite (0XC6,0 ,'L');
ModulWrite (0XC6,0 ,'O');


das funzt auch, aber das ist nicht das was ich haben wollte.
wie kann ich einen String oder Variable senden und das diese anzeigt werden?

dank vorab...


mfg uwe

Adam
01.10.2004, 14:59
hm ? also wird das "hallo" angezeigt oder nicht ? denn irgendwie versteh ich deine frage nicht ...
oder willlst du einfach eine Variable nehmen $var="Hallo" und dsa die dann gesendet wird, sprich ohne das du alles per hand mit ModulWrite ... schreiben musst ?
Wenns das ist, dann nimm eine Schleife :]
Hoffe geholfen zu haben, mfg

UweMD
01.10.2004, 15:28
HI Adam...

das Hallo wird angezeigt.

wenn ich z.b.:
string text;
text = "Test";
ModulWrite (0XC6,0 ,text);

schreibe dann kommt der Text nicht an bzw. ich bekomme einen fehler vom Compiler.


mfg uwe

fzehner
01.10.2004, 15:57
Du wirst jedes Zeichen einzeln senden müssen. Programmiere eine Schleife von 1 bis Anzahl Zeichen im String und sende in der Schleife die einzelnen Zeichen.

Adam
01.10.2004, 15:58
Hmm, weiß nicht ... vieleicht kann der Befehl ModulWrite jeweils immer nur ein Zeichen annehmen ? Oder geht auf ein ganzer String ? Das weiß ich nicht. Kannst ja mal nach den Eigenschaften von dem Befehl gucken ...
MfG

Ah ja, was kriegst du denn für eine Fehlermeldung ?

UweMD
01.10.2004, 16:10
hallo...

erstmal danke für die antworten...

@adam:

die Fehlermeldung: " type mismatch"

mfg uwe

UweMD
02.10.2004, 14:32
Hallo....

ich habe ein wenig gebastelt und eine Ausgabe von strings geschafft.
aber die ausgabe ist nicht so ruhig wie auf dem kleinen RP5 LCD.

Es ist doch ein starkes flackern zu sehen. Besonders stark ist es wenn ich die Uhrzeit auf dem LCD ausgebe.

ich habe folgendes geschrieben.



//-----------------------------
function ClearLCD() // LCD löschen
{
ModulWrite (0xC6,0,12);

}


//----------------------------
function CursorHide () // Cursor ausblenden
//----------------------------
{
ModulWrite (0xC6,0, 4);

}
//------------------------------------------
function ausgabe(byte Buffer[],int laenge) //Ausgabe der Strings
//------------------------------------------
{
int i;

for i=0 ... (laenge-1)
{
ModulWrite(0xC6,0,Buffer[i]);

}
}

///////////////////////////////////////////////////
///////////////////////////////////////////////////

thread main
{
loop
{

string s;

s="Hallo";

ClearLCD();

CursorHide ();

ausgabe(s,20);

}
sleep 500; // mit den sleep Zeiten habe ich schon Experimentiert
}




hat einer vielleicht ne idee...?



mfg uwe

Dirk
02.10.2004, 16:21
Hallo UweMD,

Du kannst Dir ja 'mal die Routinen print2LCD und printLCD im Modul ccrp5.c2 (V2.1 im CC2Net.de) ansehen! O:)
Die sind ziemlich ähnlich wie das, was Du brauchst.

Gruß Dirk

UweMD
02.10.2004, 16:41
Hi Dirk...

Danke...! Genau das Funzt super und ist das was ich brauche....

Aber das Flackern ist das gleiche....ist der I2C Bus zu langsam für ein LCD...?


mfg Uwe

UweMD
02.10.2004, 20:49
HI....


Ok hat sich erledigt....! Habs jetzt.
Das Clear screen war das Problem...

Dank....!

mfg uwe