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 

GLCD inBASCOM drugič

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
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

PrispevekObjavljeno: Sob Dec 15, 2012 2:03 pm    Naslov sporočila: GLCD inBASCOM drugič Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
roberto
Mojster


Pridružen/-a: Ned Maj 2005 16:19
Prispevkov: 41

PrispevekObjavljeno: Sob Dec 15, 2012 3:35 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
malovrh4
Mojster


Pridružen/-a: Sob Sep 2007 21:14
Prispevkov: 22
Kraj: Polhov Gradec

PrispevekObjavljeno: Sob Dec 15, 2012 4:49 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
roberto
Mojster


Pridružen/-a: Ned Maj 2005 16:19
Prispevkov: 41

PrispevekObjavljeno: Sob Dec 15, 2012 5:30 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
malovrh4
Mojster


Pridružen/-a: Sob Sep 2007 21:14
Prispevkov: 22
Kraj: Polhov Gradec

PrispevekObjavljeno: Pon Dec 17, 2012 8:47 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Profesionalec


Pridružen/-a: Sob Maj 2007 9:25
Prispevkov: 303
Kraj: Mengeš

PrispevekObjavljeno: Pon Dec 17, 2012 8:58 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Jure
Urednik


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

PrispevekObjavljeno: Tor Dec 18, 2012 1:52 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
malovrh4
Mojster


Pridružen/-a: Sob Sep 2007 21:14
Prispevkov: 22
Kraj: Polhov Gradec

PrispevekObjavljeno: Tor Dec 18, 2012 8:50 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
roberto
Mojster


Pridružen/-a: Ned Maj 2005 16:19
Prispevkov: 41

PrispevekObjavljeno: Sre Dec 19, 2012 12:35 pm    Naslov sporočila: Odgovori s citatom

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
Poglej uporabnikov profil Pošlji zasebno sporočilo
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
Stran 1 od 1

 
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