|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
malovrh4 Mojster
Pridružen/-a: Sob Sep 2007 21:14 Prispevkov: 22 Kraj: Polhov Gradec
|
Objavljeno: Sob Dec 15, 2012 2:03 pm Naslov sporočila: GLCD inBASCOM drugič |
|
|
Pozravljeni!
Tudi sam imam težave z GLCD ( iz trgovine SE). Nekaj sem jih rešil s pomočjo teme odprte nedolgo nazaj (izklop prekinitev), obstaja pa še težava, da se mi v določenih pogojih (meni neznanih) po uporabi ukaza LCDAT premakne desna polovica zaslona za eno piko navzdol. (glej sliko).
In tako ostane vse do naslednjega hard reseta mikrokotrolerja ( AtMega 324). Ukaz CLS ne pomaga, prav tako mi ne delujeta ukaza CLS text in CLS graph. Opazil pa sem tudi, da se po daljšem času uporabe (npr več kot 15 min) levi del zaslona preprosto izgine (izrisuje se samo še desni)
Uporabljam BASCOM AVR 2.0.7.1
prilagam tudi del kode, kjer nastanejo težave
lp
uroš Koda: | $crystal = 11059200
$regfile = "m324pdef.dat"
$hwstack=40
$swstack = 24
$framesize=32
$baud = 4800
$lib "glcdKS108.lib"
Setfont Font5x5
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , Ce = 2 , Ce2 = 3 , Cd = 4 , Rd = 5 , Reset = 6 , Enable = 7 , Mode = 8
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Setting up the a/d convertor
Set_id:
Dim P As Byte : P = 1
Cls
For I2 = 1 To 8
' spodnje tri vrstice so onemogočene
' Lcdat 1 , P , Reg_no(i2) ' izpis prebrane ID senzorja v prvo vrsto displaya
' P = P + 12
' Waitms 100
Next
Box(112 , 0) -(127 , 14) , 255
Waitus 300
Box(112 , 48) -(127 , 63) , 255
Waitus 300
Tip1 = 0
Tip2 = 0
For I2 = 0 To 50
Gosub Readtouch
Lcdat 6 , 24 , "X=" ; X ; " "
Lcdat 7 , 24 , "Y=" ; Y ; " "
Waitms 100
Tip1 = Push_button(680 , 660)
Tip2 = Push_button(680 , 400)
If Tip1 = 1 Then Exit For
If Tip2 = 1 Then Exit For
Next
' če se izvedete ena od spodnjih dveh vrstic, se desni del pomakne za eno piko dol
' in tako ostane do nadaljnega
If Tip1 = 1 Then Lcdat 1 , 0 , "tipka 1"
If Tip2 = 1 Then Lcdat 2 , 0 , "tipka 2"
Wait 3
Cls
Return
$include "font5x5.font" |
|
|
Nazaj na vrh |
|
|
roberto Mojster
Pridružen/-a: Ned Maj 2005 16:19 Prispevkov: 41
|
Objavljeno: Sob Dec 15, 2012 3:35 pm Naslov sporočila: |
|
|
Ko zapisuješ na GLCD preko njegovih mej (128x64), npr. na piko, ki je na mestu 129 se ti bo to zgodilo (tudi če je pika tam nevidna). Po takem dogodku, namesto reseta Pomaga tudi INITLCD. |
|
Nazaj na vrh |
|
|
malovrh4 Mojster
Pridružen/-a: Sob Sep 2007 21:14 Prispevkov: 22 Kraj: Polhov Gradec
|
Objavljeno: Sob Dec 15, 2012 4:49 pm Naslov sporočila: |
|
|
Ne, ne pišem oz rišem čez rob. Sem se tudi preventivno odmaknil od roba za nekaj pik,a je isto. INITLCD pa pri grafičnem LCD-ju ne deluje, vsaj pri meni ni.
Ima še kdo kako idejo oz rešitev? |
|
Nazaj na vrh |
|
|
roberto Mojster
Pridružen/-a: Ned Maj 2005 16:19 Prispevkov: 41
|
Objavljeno: Sob Dec 15, 2012 5:30 pm Naslov sporočila: |
|
|
Verjetno se ti izmenjujejo prikazi na displayu. Za pisanje preko meje velja tudi presledek, ki ga sicer ne vidiš, a če je zadnji font še v mejah je presledek že izven meja. Tudi sam sem imel podoben primer. Preveri še to, ker je pripet le del programa in sem zasledil presledke
Koda: |
Lcdat 6 , 24 , "X=" ; X ; " "
Lcdat 7 , 24 , "Y=" ; Y ; " "
|
|
|
Nazaj na vrh |
|
|
malovrh4 Mojster
Pridružen/-a: Sob Sep 2007 21:14 Prispevkov: 22 Kraj: Polhov Gradec
|
Objavljeno: Pon Dec 17, 2012 8:47 pm Naslov sporočila: |
|
|
Ne čez rob ne pišem. A kljub številnim poskusom ne morem ugotoviti kdaj se bo zgodil premik za eno piko navzdol.
Je pa res, da je v navodilih omenjena za uporabo ukaza LCDAT knjižnica :
Koda: | You need to include the glibSED library with :
$LIB "glibsed.lbx"
|
A te knjižnice nisem še nikjer našel.
Težavo sedaj rešujem z ukazom INITLCD, ki deluje, samo vzroka pa ne poznam. A saj je vseeno, samo da deluje.
lp
uroš |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Pon Dec 17, 2012 8:58 pm Naslov sporočila: |
|
|
Jaz za ta lcd uporabljam knjižnico glcdks108. Si poskusil s to?
EDIT: moja napaka, vidim da jo uporabljaš.
Koliko dolge kable pa imaš od PCBja do GLCDja? Če so predolgi, lahko vlečejo motnje. Se mi je ze dogajalo, resda s klasičnim LCD, ampak sistem je itak isti. Če imaš dolge kable jih skrajšaj.
Ali pa- uporabljaš kaksen rele? tudi ta je pasji glede motenj... _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Tor Dec 18, 2012 1:52 pm Naslov sporočila: |
|
|
Težko rečem takole na daleč... ali je možno, da je na vezju kje kakšen preveč "dober" stik? Ali imaš na portu, kjer je vezan GLCD vezano še kakšno komponento?
Na seminarjih, ki smo jih imeli za GLCD se to ni pojavljalo...
Lp
Jure |
|
Nazaj na vrh |
|
|
malovrh4 Mojster
Pridružen/-a: Sob Sep 2007 21:14 Prispevkov: 22 Kraj: Polhov Gradec
|
Objavljeno: Tor Dec 18, 2012 8:50 pm Naslov sporočila: |
|
|
Ne , relejev še ne uporabljam, sama dolžina kablov pa je res lahko problem. Sploh na data portu (portB) so dolgi, speljani so preko protoboard-a, in dalje preko dveh stikal, da ločim ISP (MISO, MOSI, SCK) pine med programiranjem.
Čez teden ali dva, ko bo to v končni obliki, pa poročam, če se je težava uredila.
hvala za nasvete
in
lp
Uroš |
|
Nazaj na vrh |
|
|
roberto Mojster
Pridružen/-a: Ned Maj 2005 16:19 Prispevkov: 41
|
Objavljeno: Sre Dec 19, 2012 12:35 pm Naslov sporočila: |
|
|
Sem spisal en programcek za display 128x64. Možno je naknadno (poljubno gor/dol) popravljati zamik leve ali desne strani.
Koda: |
Initlcd
Cls
Do
Lcdat 5 , 50 , "TEST"
For A = 0 To 140
Pset A , 10 , 1
Waitms 50
Next A
For A = 0 To 80
Pset 10 , A , 1
Waitms 50
Next A
For A = 0 To 90
Pset 70 , A , 1
Waitms 50
Next A
For A = 80 To -10 Step -1
Pset 20 , A , 1
Waitms 50
Next A
For A = 90 To -20 Step -1
Pset 80 , A , 1
Waitms 50
Next A
For A = 0 To 130
Pset A , A , 1
Waitms 50
Next A
Loop
|
|
|
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
|