|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
zlabo Mojster
Pridružen/-a: Pet Sep 2006 15:17 Prispevkov: 23
|
Objavljeno: Sre Okt 08, 2008 2:44 pm Naslov sporočila: Pisanje na grafični LCD |
|
|
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 |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Sre Okt 08, 2008 6:50 pm Naslov sporočila: pisanje na grafični LCD displej |
|
|
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 |
|
|
zlabo Mojster
Pridružen/-a: Pet Sep 2006 15:17 Prispevkov: 23
|
Objavljeno: Sre Okt 08, 2008 7:17 pm Naslov sporočila: |
|
|
sem tudi tam že odgovoril, pa bom še tukaj
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" |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Okt 09, 2008 8:56 am Naslov sporočila: pisanje na grafični lcd |
|
|
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 |
|
|
zlabo Mojster
Pridružen/-a: Pet Sep 2006 15:17 Prispevkov: 23
|
Objavljeno: Čet Okt 09, 2008 12:41 pm Naslov sporočila: |
|
|
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
hvala za odgovore |
|
Nazaj na vrh |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Okt 09, 2008 2:42 pm Naslov sporočila: Pisanje na grafični LCD |
|
|
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 |
|
|
kos19 Profesionalec
Pridružen/-a: Čet Feb 2006 18:25 Prispevkov: 55
|
Objavljeno: Čet Dec 18, 2008 5:03 pm Naslov sporočila: |
|
|
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 |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Dec 18, 2008 5:38 pm Naslov sporočila: Pisanje na grafični LCD |
|
|
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 |
|
|
kos19 Profesionalec
Pridružen/-a: Čet Feb 2006 18:25 Prispevkov: 55
|
Objavljeno: Čet Dec 18, 2008 7:04 pm Naslov sporočila: |
|
|
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 |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Čet Dec 18, 2008 7:41 pm Naslov sporočila: Pisanje na grafični LCD |
|
|
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 |
|
|
kos19 Profesionalec
Pridružen/-a: Čet Feb 2006 18:25 Prispevkov: 55
|
Objavljeno: Čet Dec 18, 2008 9:00 pm Naslov sporočila: |
|
|
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 |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
|
kos19 Profesionalec
Pridružen/-a: Čet Feb 2006 18:25 Prispevkov: 55
|
Objavljeno: Pet Dec 19, 2008 10:07 pm Naslov sporočila: |
|
|
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 |
|
|
Vlado Profesionalec
Pridružen/-a: Ned Jan 2004 16:11 Prispevkov: 556 Kraj: Ljubljana
|
Objavljeno: Sob Dec 20, 2008 12:45 pm Naslov sporočila: Pisanje na grafični displej |
|
|
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 |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Ned Dec 21, 2008 5:14 pm Naslov sporočila: |
|
|
Martin,
meni je pomagalo, da sem nadgradil Bascom-AVR na zadnjo verzijo
LP
Jure |
|
Nazaj na vrh |
|
|
|
|
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
|