Anfänger braucht Hilfe

LCDmultiPort keine Funktion

jerich
 
Avatar
 
Subject:

Anfänger braucht Hilfe

 · 
Posted: 09.11.2013 - 23:19  ·  #1
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
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Anfänger braucht Hilfe

 · 
Posted: 11.11.2013 - 12:43  ·  #2
Hallo jerich,

hier wirds problematisch:
PortC:= %00110011;
DDRC:= %00110011;


Wenn schon dann so:
PortC:= PortC or %00110011;
DDRC:= DDRC or %00110011;

Der Treiber stellt für den I2Csoft die benutzten Pins schon ein.
Ein einfaches drüberschreiben mit z.B. DDRC:= xxx zerstört natürlich
die vom Treiber vorgegebenen Einstellungen.

rolf
jerich
 
Avatar
 
Subject:

Re: Anfänger braucht Hilfe

 · 
Posted: 18.11.2013 - 12:01  ·  #3
Hallo,
das Problem ist gelöst.
Ich muß mich schämen.....
War kein Software Problem. Die Leiterbahn zum Kontrastpin(3) des LCD's
war unterbrochen.

Danke nochmals

Gruß JErich
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   64   78 · Page-Gen-Time: 0.03066s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI