Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

Pisanje na grafični LCD
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Sre Okt 08, 2008 2:44 pm    Naslov sporočila: Pisanje na grafični LCD Odgovori s citatom

Pozdravljeni!

Delam z grafičnim LCD-jem (KS107/108) in touchscreenom. Vse mi dela ok, LCD nariše oziroma napiše kar mu naročim.
Imam pa en problem in sicer pri pisanju na točno zaželjeno lokacijo. Namreč pri ukazu "LCDAT y , x , var" me moti ker BascomAVR y kordinato šteje po vrsticah.
Primer:
Koda:
 Lcdat  3 , 5 , "krneki" , 0

Bascom interpretira 3-jko kot 3ja vrstica za pisavo 8x8, torej gre na 24-ti pixel po y kordinati (3*8 ), medtem ko po x osi na 5 pixel. Nima veze katero pisavo imaš, vedno bo y kordinato štel po 8 pixlov. Jaz pa bi rabil da mi spremeljivko izpisuje na točno želeno lokacijo v obliki y(pixel), x(pixel), tako kot je to pri ukazu "Showpic x , y , ime_slike"

Se je že kdo ukvarjal s tem? Je namreč zelo nerodno ker po y osi lahko "skačem "samo po 8 pixlov...
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Sre Okt 08, 2008 6:50 pm    Naslov sporočila: pisanje na grafični LCD displej Odgovori s citatom

Zlabo,
kot sem ti odgovoril že na Maxiju, pa še tukaj:
namesto ukaza LCDAT, uporabi ukaz LOCATE (enako kot pri navadnem displeju.
LCDAT je ukaz za color displeje ki nimajo "vgrajenih" fontov in lahko pišeš kjer koli.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Sre Okt 08, 2008 7:17 pm    Naslov sporočila: Odgovori s citatom

sem tudi tam že odgovoril, pa bom še tukaj Very Happy
Locate je samo za alfanumerične displeye, se nisva razumela, imam grafični LCD na KS108 osnovi. Ta pa nima vgrajenih fontov, saj lahko izpisujem poljubno pisavo ki jo skonstruiram sam (to je tudi eden od pogojev pri mojem projektu).

Če jaz na moj displey poskusim pisati (sem šel za foro probat) z ukazom locate, se na displeyu pojavijo same "čire čare" Very Happy
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Čet Okt 09, 2008 8:56 am    Naslov sporočila: pisanje na grafični lcd Odgovori s citatom

Zlabo,
sem delal z grafičnim displejem in mislim da to kar bi ti rad ne bo šlo brez da pišeš lastno rutino, ali pa da črke prikazuješ kot sliko (bgf).
LOCATE velja tudi za grafične displeje in upošteva vrstice in kolone glede na velikost pisave ki jo imaš.
del klode iz helpa ki je preizkušen:
Koda:
Locate 1 , 1

 

'Show some text

Lcd "MCS Electronics"

'And some othe text on line 2

Locate 2 , 1 : Lcd "T6963c support"

Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"

Locate 16 , 1 : Lcd "write this to the lower line"


Ali ukaz LCDAT deluje tudi z KS107/108 nisem probal, vem pa da za color displej z SED čipom deluje tako kot bi ti želel.
Nimam trenutno LCD-ja z KS kontrolerjem imam pa z T6963c, in bom se malo poigral, ker do zdaj nisem imel potrebe po tem kar bi ti rad.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
zlabo
Mojster


Pridružen/-a: Pet Sep 2006 15:17
Prispevkov: 23

PrispevekObjavljeno: Čet Okt 09, 2008 12:41 pm    Naslov sporočila: Odgovori s citatom

KS107/108 in ukaz locate se ne razumeta,dobim same zmazke na display, pa tako ali tako mi nebi nič pomagal, ker je to spet lociranje po vrsticah in ne po pixlih...
Mislim da bom res moral izpisovati znake kot sliko, saj se mi trenutno ne sanja kakšne ukaze bi mu moral poslati v svoji rutini da bi stvar delala po moje Confused

hvala za odgovore Wink
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Čet Okt 09, 2008 2:42 pm    Naslov sporočila: Pisanje na grafični LCD Odgovori s citatom

Očitno da KS107/108 kontroler ukaz LCDAT razume enako kot LOCATE.
Pri color displeju (Siemens S65) pa lahko pišem tam kam povem z ukazom LCDAT.
Trenutno nimam nobenega displeja z KS kontrolerjem imam samo 240x128 in 128x64 in oba sta z T6963 kontrolerjem.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
kos19
Profesionalec


Pridružen/-a: Čet Feb 2006 18:25
Prispevkov: 55

PrispevekObjavljeno: Čet Dec 18, 2008 5:03 pm    Naslov sporočila: Odgovori s citatom

Ker je tema že odprta bom kar tukaj vprašal.
Mučim se z enim grafičnim LCDjem in ker je moj prvi mi to nikakor ne gre od rok, pa me zanima, če bi mi lahko kdo razložil iz nule kako se tega lotiti. Seveda najenostavnejše npr. izpis teksta ali prikaz kake slikce.
Mislim, da bi to prišlo prav še marsikateremu začetniku.
Hvala.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Čet Dec 18, 2008 5:38 pm    Naslov sporočila: Pisanje na grafični LCD Odgovori s citatom

Za začetek bo dovolj da odpreš Help in primer (samples) ki se nahaja v Bascomu.
Nisi povedal kakšen LCD imaš (s katerim kontrolerjem)?
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
kos19
Profesionalec


Pridružen/-a: Čet Feb 2006 18:25
Prispevkov: 55

PrispevekObjavljeno: Čet Dec 18, 2008 7:04 pm    Naslov sporočila: Odgovori s citatom

Saj to. Ali je za vsak kontroler svoj način?
Pač konfiguriraš pine naprimer
Config Graphlcd = 128 * 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8

Kje potem določim kakšen kontroler imam? V helpu tega nisem zasledil.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Čet Dec 18, 2008 7:41 pm    Naslov sporočila: Pisanje na grafični LCD Odgovori s citatom

Hm. . .
Predvidevam da imaš displej s KS108 ali T6963 kontrolerjem.
V Helpu piše:
Citiram:
Syntax

Config GRAPHLCD = type , DATAPORT = port, CONTROLPORT=port , CE = pin , CD = pin , WR = pin, RD=pin, RESET= pin, FS=pin, MODE = mode





Remarks

Type
This must be 240 * 64, 128* 128, 128 * 64 , 160 * 48 , 240 * 128 or SED180*32.



For SED displays use 128 * 64sed or 120* 64SED or SED180*32

For 132x132 color displays, use COLOR

For EADOG128x64 use 128 * 64EADOGM



Pod tem se v Helpu nahaja primer ki zasigurno deluje (preizkušeno z 128x64 in 240x128 displeji s kontrolerjem T6963).
Primer:
Koda:
'-----------------------------------------------------------------------------------------

'name                     : t6963_240_128.bas

'copyright                : (c) 1995-2005, MCS Electronics

'purpose                  : T6963C graphic display support demo 240 * 128

'micro                    : Mega8535

'suited for demo          : yes

'commercial addon needed  : no

'-----------------------------------------------------------------------------------------

 

$regfile = "m8535.dat"                                     ' specify the used micro

$crystal = 8000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space

 

'-----------------------------------------------------------------

'                     (c) 2001-2008 MCS Electronics

'                 T6963C graphic display support demo 240 * 128

'-----------------------------------------------------------------

 

'The connections of the LCD used in this demo

'LCD pin                  connected to

' 1        GND            GND

'2        GND            GND

'3        +5V            +5V

'4        -9V            -9V potmeter

'5        /WR            PORTC.0

'6        /RD            PORTC.1

'7        /CE            PORTC.2

'8        C/D            PORTC.3

'9        NC             not conneted

'10       RESET          PORTC.4

'11-18    D0-D7           PA

'19       FS             PORTC.5

'20       NC             not connected

 

'First we define that we use a graphic LCD

' Only 240*64 supported yet

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8

'The dataport is the portname that is connected to the data lines of the LCD

'The controlport is the portname which pins are used to control the lcd

'CE, CD etc. are the pin number of the CONTROLPORT.

' For example CE =2 because it is connected to PORTC.2

'mode 8 gives 240 / 8 = 30 columns , mode=6 gives 240 / 6 = 40 columns

 

'Dim variables (y not used)

Dim X As Byte , Y As Byte

 

 

'Clear the screen will both clear text and graph display

Cls

'Other options are :

' CLS TEXT   to clear only the text display

' CLS GRAPH  to clear only the graphical part

 

Cursor Off

 

Wait 1

'locate works like the normal LCD locate statement

' LOCATE LINE,COLUMN LINE can be 1-8 and column 0-30

 

 

Locate 1 , 1

 

'Show some text

Lcd "MCS Electronics"

'And some othe text on line 2

Locate 2 , 1 : Lcd "T6963c support"

Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"

Locate 16 , 1 : Lcd "write this to the lower line"

 

Wait 2

 

Cls Text

 

 

'use the new LINE statement to create a box

'LINE(X0,Y0) - (X1,Y1), on/off

Line(0 , 0) -(239 , 127) , 255                             ' diagonal line

Line(0 , 127) -(239 , 0) , 255                             ' diagonal line

Line(0 , 0) -(240 , 0) , 255                               ' horizontal upper line

Line(0 , 127) -(239 , 127) , 255                           'horizontal lower line

Line(0 , 0) -(0 , 127) , 255                               ' vertical left line

Line(239 , 0) -(239 , 127) , 255                           ' vertical right line

 

 

Wait 2

' draw a line using PSET X,Y, ON/OFF

' PSET on.off param is 0 to clear a pixel and any other value to turn it on

For X = 0 To 140

  Pset X , 20 , 255                                       ' set the pixel

Next

 

For X = 0 To 140

  Pset X , 127 , 255                                       ' set the pixel

Next

 

Wait 2

 

'circle time

'circle(X,Y), radius, color

'X,y is the middle of the circle,color must be 255 to show a pixel and 0 to clear a pixel

For X = 1 To 10

Circle(20 , 20) , X , 255                                 ' show circle

Wait 1

Circle(20 , 20) , X , 0                                   'remove circle

Wait 1

Next

 

Wait 2

 

For X = 1 To 10

Circle(20 , 20) , X , 255                                 ' show circle

Waitms 200

Next

Wait 2

'Now it is time to show a picture

'SHOWPIC X,Y,label

'The label points to a label that holds the image data

Test:

Showpic 0 , 0 , Plaatje

Showpic 0 , 64 , Plaatje                                   ' show 2 since we have a big display

Wait 2

Cls Text                                                   ' clear the text

End

 

 

 

'This label holds the mage data

Plaatje:

'$BGF will put the bitmap into the program at this location

$bgf "mcs.bgf"


Ja, Mcs.bgf nisem imel sem pa dal svoje slike ki sem jih naredil v Bascomu - Tools - Graphic converter.
Pa še to, nekateri displeji nimajo negativne napetosti za kontrast in jo je potrebno posebaj narediti, pazljivo preberi pdf za svoj displej da vidiš kje se nahaja izhod negativne napetosti za kontrast če ga ima, jaz sem na enem manjaval 7660 ker sem ga napačno priklopil ker sem zaupal v pdf na pogled enakega displeja
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
kos19
Profesionalec


Pridružen/-a: Čet Feb 2006 18:25
Prispevkov: 55

PrispevekObjavljeno: Čet Dec 18, 2008 9:00 pm    Naslov sporočila: Odgovori s citatom

Najprej se opravičujem, ker mislim, da imam lcd z 1286A kontrolerjem.
Ima pa naslednje priključke.
gnd, Vcc, Vo, RS, R/W, E, DB0 - DB7, CS1, CS2, RSTB, Vout, LED+, LED-
Če te vpišem namesto CE = pin , CD = pin , WR = pin, RD=pin, RESET= pin, FS=pin, MODE = mode
mi javi napako.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Pet Dec 19, 2008 9:50 am    Naslov sporočila: Pisanje na grafični LCD Odgovori s citatom

Ja, LCD s takšnim kontrolerjem ne obstaja.
Glede na to da imaš pine CS1 in CS2 predvidevam da je to 128*64SED displej.
Mogoče odgovor na tvoje težave najdeš tukaj:
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=6789

Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
kos19
Profesionalec


Pridružen/-a: Čet Feb 2006 18:25
Prispevkov: 55

PrispevekObjavljeno: Pet Dec 19, 2008 10:07 pm    Naslov sporočila: Odgovori s citatom

Vlado hvala za pomoč.
Se bom še malo potrudil, če nebo nič bom pač kupil displej s KS108 ali T6963 kontrolerjem.

LP Martin
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Sob Dec 20, 2008 12:45 pm    Naslov sporočila: Pisanje na grafični displej Odgovori s citatom

Martin,
ne obupat, če si iz Ljubljane ti lahko pomagam tako da ga skupaj spraviva k delovanju.
Upam da ti bo link ki sem ga poslal pomagal da ga spraviš v delovanje.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Ned Dec 21, 2008 5:14 pm    Naslov sporočila: Odgovori s citatom

Martin,

meni je pomagalo, da sem nadgradil Bascom-AVR na zadnjo verzijo Very Happy

LP
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group