PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C LCD (LCD02)



UweMD
12.10.2004, 16:53
Hallo...,

ich habe das LCD von Roboter-teile.de (LCD02).

das Schreiben von Zeichen funzt jetzt... aber wie kann ich den Cursor z.b.: auf die Zeile 2 und Spalte 5 setzen?

Hier ist die Doku zum LCD


http://www.roboter-teile.de/datasheets/lcd02.pdf

Hier ist mein Sourcecode (das was ich habe...)


//--------------------------------
function LCDWrite (byte addr, byte reg, byte Val)
//--------------------------------
{
i2c.cstart (addr);
i2c.write (reg);
i2c.write (Val);
i2c.stop ();
}

//-------------------------------
function initLCD() // LCD - Alles löschen
//-------------------------------
{
LCDWrite(0xC6,0,12);
}

//-----------------------------
function cursorHome() // Cursor auf Line und Pos auf Home
{
LCDWrite(0xC6,0,1);
}

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

}
//------------------------------------------
function print2LCD(byte s[]) // Zeichen ausgeben
//------------------------------------------
{
byte i;
for i=0 ... s[31]-1 LCDWrite(0xC6,0,s[i]);
}
//----------------------------------------
function printLCD(string s) // Einen String ausgeben
//----------------------------------------
{
print2LCD(s);
}

//-------------------------------------
function goto(byte Line,byte Pos) //setzt den Cursor an die angegeben Position
//-------------------------------------
{
// Hier sollte der CODE rein...
}



Wer kann mir da einen Tip geben...?


mfg uwe

Joerg
12.10.2004, 18:52
Hallo Uwe,

versuch mal folgendes (Code nicht getestet, aber sollte gehen):


//-------------------------------------
function goto(byte Line,byte Pos) //setzt den Cursor an die angegeben Position
//-------------------------------------
{
i2c.cstart (0xc6); // addr
i2c.write (0); // reg
i2c.write (3); // command
i2c.write (Line);
i2c.write (Pos);
i2c.stop ();
}

Man kann das ganze sicher auch als Array an eine alternative LCDWrite-Funktion geben, so viele Commands mit mehreren Parametern das es sich lohnt gibts aber wohl gar nicht.

HTH und Viele Grüße
Jörg

UweMD
12.10.2004, 19:28
Hi Joerg...


Danke....!
Funzt super...!

ich hatte es ähnlich probiert, aber ebend nicht so... *g*

Der andere Code von mir ist doch dann auch nicht richtig oder...?

mfg uwe