Graphic LCD DOGM 128*64

UserDevice GraphIOS

nevolab
 
Avatar
 
Betreff:

Graphic LCD DOGM 128*64

 · 
Gepostet: 19.04.2011 - 13:30 Uhr  ·  #1
Guten Tag,

ich versuche derzeit ein DOGM 128+64 LCD Modul zum laufen zu bekommen.
Ich verwende den Ini Code von "Harry" - Vielen Dank. (auch für die vielen anderen Beträge!)

Aus irgend welchen Gründen, habe ich das Gefühl das GraphIOS nicht angesprungen wird.

// Quelle: Code von USER Harry

Device = mega128, VCC=3.3;
{ $BOOTRST $07000} {Reset Jump to $07000}

Import SysTick, LCDGraphic, SPIdriver1,SerPort;

From System Import CharSet;


Define
ProcClock = 16000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0100, iData;
FrameSize = $0100, iData;

SPIdriver1 = PortA, 1, 0, 5, 6; // SCK, MOSI, MISO, SS
// 2 = A0 ... L=Command H=Data
// 4 = /Reset

SPIorder1 = MSB;
SPIcPHA1 = 1;
SPIcPol1 = 1;

LCDGraphic = 128, 64, 8; { Display 128 x 64 }
LCDgraphMode = column, iData;
DefCharSet = 'Graphchars.pchr';
GViewports = 4, iData;
TGraphStr = 40;

......


UserDevice GraphIOS(Cmd: Byte; Arg: byte);
Begin
If Cmd=0 then // set row addr
CurRow:=arg;
WriteLCD(%10110000+CurRow,false); // page
WriteLCD(%00010000,false); // address 0
WriteLCD(%00000000,false);
Col:= 0;
else
If Col<128
then
WriteLCD(Arg,true);
Inc(Col);
EndIf;
EndIf;
End GraphIOS;

Mache ich einen Fehler bei der Deklaration ?


Vielen Dank


Martin
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Graphic LCD DOGM 128*64

 · 
Gepostet: 19.04.2011 - 14:36 Uhr  ·  #2
Hallo Martin,

wie ist denn dein GLCD an den Controller angeschlossen ? Also welcher Pin/Port µC an welchen des LCD ? Wie hast du das LCD spannungsmäßig beschaltet ? Im Datenblatt gibt es ja 2 Möglichkeiten (single/dual supply).

gruss
Harry

[EDIT] TGraphstr=40 gibt es nicht. Maximal sind 24 möglich (wenn meine Doku noch stimmt).
MISO gibt es an diesem Display nicht. Die Deklaration zeigt auf einen nicht benutzten Pin des µC.
Hast du das auch gemacht:
Code

Procedure InitPorts;
  Begin
    DDRA:=  %01010111;
  End InitPorts;

Hast du das Init angepaßt ?
Code

Procedure GraphInit;
  Var Counter : Byte;
  Begin
    Excl(PortA, 4);
    MDelay(10);
    Incl(PortA, 4);
    MDelay(10);

    WriteLCD($40,false);                    // Display Start Line 0
    WriteLCD($A1,false);                    // ADC reverse $A1 / normal $A0
    WriteLCD($C0,false);                    // normal $C0 / reverse $C8
    WriteLCD($A6,false);                    // Display normal
    WriteLCD($A2,false);                    // Set BIAS 1/9
    WriteLCD($2F,false);                    // Booster, Regulator, Follower on
    WriteLCD($F8,false);                    // Set internal Booster to 3x/4x
    WriteLCD($00,false);                    //
    WriteLCD($27,false);                    // Contrast Set
    WriteLCD($81,false);                    //
    WriteLCD($16,false);                    // Contrast: Standard $16
    WriteLCD($AC,false);                    // No Indicator
    WriteLCD($00,false);                    //
    WriteLCD($AF,false);                    // Display on

    AutoRefresh:=false;
  End GraphInit;


..... und die dümmste Frage von allen (ist mir auch schon passiert :D ) : hast du nen DIsplayrefresh nac deiner Zeichenoperation gemacht ?
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Re: Graphic LCD DOGM 128*64

 · 
Gepostet: 20.04.2011 - 15:07 Uhr  ·  #3
Hallo Harry.

Zitat geschrieben von Harry

..... und die dümmste Frage von allen (ist mir auch schon passiert :D ) : hast du nen DIsplayrefresh nac deiner Zeichenoperation gemacht ?


Wem ist das den noch nicht passiert? Aber man lernt ja ;)

Gruß
Thorsten
nevolab
 
Avatar
 
Betreff:

Re: Graphic LCD DOGM 128*64

 · 
Gepostet: 20.04.2011 - 16:25 Uhr  ·  #4
Hallo Harry, pvs-deck,


vielen Dank für die schnelle Hilfe.

es lag am Displayrefresh !!!!

Nochmals Danke für das Beispiel.


Gruß


Martin
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   78   92 · Page-Gen-Time: 0.036647s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI