Hallo,
ich hoffe Ihr könnt mir eine Tip geben.
Ich Versuche, leider ohne Erfolg, ein LCD Display an einem Mega8 über I2C zu betreiben.
Ich habe ein PCA9555D an den Port C Bit 4 und 5 angeschlossen.
LCD_m1 ist OK denn dann sehe ich mit dem Oszilloskop Signale an den DiplayAnschlüssen.
LCDsetup_M(LCD_m1) liefert leider kein true zurück. Warum nicht?
Geht das überhaupt an PortC Bit 4,5 mit Soft_i2c?
Ich habe verschiedene LCD Display versucht LN211R ,4x20 mit HD44780,
LCD 162SW DIP(Reichelt) alle keine Funktion.
program Fotosteuerung;
{$NOSHADOW}
{ $WG} {global Warnings off}
Device = mega8, VCC=5;
{ $BOOTRST $00C00} {Reset Jump to $00C00}
Import SysTick,I2CPort,LCDmultiPort,SysLEDblink;
From System Import ;
Define
ProcClock = 8000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0032, iData;
FrameSize = $0032, iData;
I2CPort = PortC;
I2Cdat = 4;
I2Cclk = 5,4;
LCDmultiPort = I2C_Soft;
LCDType_M = 44780;
LCDrows_M = 4;
LCDcolumns_M = 20;
SysLedBlink = 200; {SysTicks}
SysLedBlink0 = PortB, 0, low;
SysLedBlink1 = PortB, 1, high;
SysLedBlink2 = PortB, 2, high;
SysLedBlink3 = PortB, 3, high;
SysLedBlink6 = PortB, 5, high;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
{--------------------------------------------------------------}
{ functions }
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
procedure InitPorts;
begin
PortB:= %00000001;
DDRB:= %00111111;
PortC:= %00110011;
DDRC:= %00110011;
end InitPorts;
procedure itest;
begin
mdelay(1000);
LCDsetup_M(LCD_m1);
mdelay(1000);
LCDcursor_M(LCD_m1,true,true);
mdelay(1000);
write(LCDout_M,'testfall');
end;
begin
InitPorts;
SysLEDflashAllOn;
EnableInts;
iTest;
loop
mdelay(10000);
itest;
endloop;
end Fotosteuerung.
Danke für eure Hilfe.
Gruß Jürgen Erich S
ich hoffe Ihr könnt mir eine Tip geben.
Ich Versuche, leider ohne Erfolg, ein LCD Display an einem Mega8 über I2C zu betreiben.
Ich habe ein PCA9555D an den Port C Bit 4 und 5 angeschlossen.
LCD_m1 ist OK denn dann sehe ich mit dem Oszilloskop Signale an den DiplayAnschlüssen.
LCDsetup_M(LCD_m1) liefert leider kein true zurück. Warum nicht?
Geht das überhaupt an PortC Bit 4,5 mit Soft_i2c?
Ich habe verschiedene LCD Display versucht LN211R ,4x20 mit HD44780,
LCD 162SW DIP(Reichelt) alle keine Funktion.
program Fotosteuerung;
{$NOSHADOW}
{ $WG} {global Warnings off}
Device = mega8, VCC=5;
{ $BOOTRST $00C00} {Reset Jump to $00C00}
Import SysTick,I2CPort,LCDmultiPort,SysLEDblink;
From System Import ;
Define
ProcClock = 8000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0032, iData;
FrameSize = $0032, iData;
I2CPort = PortC;
I2Cdat = 4;
I2Cclk = 5,4;
LCDmultiPort = I2C_Soft;
LCDType_M = 44780;
LCDrows_M = 4;
LCDcolumns_M = 20;
SysLedBlink = 200; {SysTicks}
SysLedBlink0 = PortB, 0, low;
SysLedBlink1 = PortB, 1, high;
SysLedBlink2 = PortB, 2, high;
SysLedBlink3 = PortB, 3, high;
SysLedBlink6 = PortB, 5, high;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
{--------------------------------------------------------------}
{ functions }
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
procedure InitPorts;
begin
PortB:= %00000001;
DDRB:= %00111111;
PortC:= %00110011;
DDRC:= %00110011;
end InitPorts;
procedure itest;
begin
mdelay(1000);
LCDsetup_M(LCD_m1);
mdelay(1000);
LCDcursor_M(LCD_m1,true,true);
mdelay(1000);
write(LCDout_M,'testfall');
end;
begin
InitPorts;
SysLEDflashAllOn;
EnableInts;
iTest;
loop
mdelay(10000);
itest;
endloop;
end Fotosteuerung.
Danke für eure Hilfe.
Gruß Jürgen Erich S