www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Težava z 2x16 LCDjem; EasyAVR6 in Atmega16
Pojdi na stran 1, 2, 3, 4  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 3:33 pm    Naslov sporočila:  Težava z 2x16 LCDjem; EasyAVR6 in Atmega16 Odgovori s citatom

Lepo pozdravljeni vsi skupaj.

Učim se programirati z Atmelovimi mikroprocesorji, kupil sem si tudi EasyAVR6 razvojno ploščo ter naročil 2x16 LCD zaslon. Začel sem programirati z BASCOMom, kasneje želim preiti na C.

Trenutna moja konkretna težava je, da želim z atmega16 procesorjem prikazovati tekst na LCD zaslončku. Spisal sem preprost program v BASCOMU, konfiguiral porte za LCD vendar so se na zaslonu v zgornji vrsti pokazali le kvadratki. Potem sem vzel sample code od mikroelektronike v Cju ter jo zapisal na procesor vendar je LCD spet izpisal samo kvadratke. LCD sicer ni original od mikroelektronike vendar se glede na datasheet ujema z mojo razvojno ploščo.

Ima kdo mogoče kakšno ideja, kaj bi lahko bilo narobe? Malo sumim na stikala (čeprav so nastavljena tako, kot je prikazano v navodilih razvojne plošče), zato so slike stikal ter zaslona spodaj v povezavah prav tako obe kodi.

Zaslon: https://www.dropbox.com/s/46fqxyt2lzm55o0/2013-04-26%2015.02.55.jpg
Stikalo: https://www.dropbox.com/s/gz8uhln7n4kql9p/2013-04-26%2015.21.18.jpg
Stikalo: https://www.dropbox.com/s/vv7f1u9ilcl5v6f/2013-04-26%2015.21.23.jpg

BASCOM: http://pastebin.com/qR5y1uzT
BASCOM LCD konfiguracija: https://www.dropbox.com/s/0qsiadrfnon4uwi/bascom.png

C: http://pastebin.com/b21EvMas

Najlepša hvala ta kakršno koli pomoč.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 3:43 pm    Naslov sporočila:   Odgovori s citatom

Si v bascomu dal notri ukaz config lcd? Pa Načeloma se pinov nikoli ne nastavlja v nastavitvah, ampak vedno v programu samem. Zakaj? k je tako bolj pregledno. Dati moraš ukaz config lcd=16*2 ter zatem še config lcdpin= ter tukaj navesti prave porte za posamezne pine. Sice bi delalo če določiš pine v nastavitvah, ne bo pa delalo če ne vpišeš ukaza config lcd=16*2. Je pa skrajno nepregledno, če to določaš v nastavitvah, zato tega noben ne dela.
Še to: ukaz, napisan v programu je prvi po prioriteti, kar pomeni da v nastavitvah ne rabiš nič spreminjati ker jih compiler ignorira. Jaz v bistvu nikoli ničesar ne delam v nastavitvah. Vse izključno v programu.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.17
Kraj: Črnuče

PrispevekObjavljeno: Pet Apr 26, 2013 3:44 pm    Naslov sporočila:   Odgovori s citatom

Si poizkusil znižati kontrast na LCD-ju? Moraš nekje imeti potenciometer.
Če imaš narobe nastavljeno frekvenco procesorja tudi ne bo delovalo.
Pini morajo biti definirani kot izhodni.

Tole je generičen odgovor, ker AVR in bascoma ne poznam Mr. Green

Kodo lahko pripenjaš direktno na forum, slike tudi. Imaš gumb Code za kodo, sliko pa pripneš kot priponko.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 3:53 pm    Naslov sporočila:   Odgovori s citatom

Imam zraven potenciometer ter sem ga tudi spreminjal vendar se ni zgodilo nič nepričakovanega (kontrast kvadratkov se je spreminjal). Frekvenca se je nastavila avtomatsko, ko sem na programu, ki zapisuje HEX kodo na čip nastavil kateri čip uporabljam.

Bascom kodi sem sedaj nastavil LCD parametre ter output:
Koda:
Config Portd = Output

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db7 = Portd.7 , Db6 = Portd.6 , Db5 = Portd.5 , Db4 = Portd.4 , E = Portd.3 , Rs = Portd.2


Cls
Lcd "Hello!"
Wait 1
End
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 3:53 pm    Naslov sporočila:   Odgovori s citatom

Evo tole kodo sprogramiraj in mora delat. Tako naj bi izgledal vsak program.

PAZI!!! frekvenco kristala spremeni, če ne uporabljaš 1 MHz"

Koda:
$regfile "m16def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Cursor Off Noblink


' Main loop
Do

Cls
Locate 1 , 1
Lcd "Hello world!"
Locate 1 , 1
Lcd "Test displeja!"
Wait 2
Loop


EDIT: medtem, ko preizkušaš še malce nasvetov:
- ne moreš porta D konfigurirati kot output, potem ga pa uporabiti za LCD. Ali eno ali drugo.
.

VEDNO!!! naj bo v programu glava, torej regfile, crystal, potem še trije ukazi:$hwstack = 32
$swstack = 16
$framesize = 32
ki določajo velikost sklada. številke se seveda spreminjajo.

EDIT2: spremenil pind... v portd...čeprav oboje dela...


Nazadnje urejal/a protoncek Pet Apr 26, 2013 4:04 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 4:04 pm    Naslov sporočila:   Odgovori s citatom

Žal je rezultat isti: kvadratki v zgornji vrsti.

Dopolnil sem svoj header z pravilnimi podatki:
Koda:
$regfile = "m16def.dat"
$Crystal=4000000
$hwstack=40
$swstack=16
$framesize=32

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7 , E = Pind.3 , Rs = Pind.2
Cursor Off Noblink


' Main loop
Do

Cls
Locate 1 , 1
Lcd "Hello world!"
Locate 1 , 1
Lcd "Test displeja!"
Wait 2
Loop
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 4:05 pm    Naslov sporočila:   Odgovori s citatom

hm...imaš vse ostale DIP stikala na OFF? poskusi izklopit LEDice, včasih lahko tudi to nagaja.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 4:13 pm    Naslov sporočila:   Odgovori s citatom

Vsi so sedaj na off razen za LCD osvetlitev. Sem pa sedaj opazil eno zanimivo zadevo; pomislil sem, da je mogoče kaj narobe z procesorjem in sem ga zato odstranil ter v ploščo pritrdil popolnoma novega še brez kakršnekoli kode, takoj po zamenjavi ko sem ploščo nazaj prižgal je LCD zaslonček že svetil z kvadratki.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 4:17 pm    Naslov sporočila:   Odgovori s citatom

Če LCD kaže črne kvadratke v gornji vrstici, to pomeni da je LCD živ, a ni inicializiran. PO domače, LCD čaka na karkoli - ukaz....
ŠE nekaj - v fusebitih - imaš JTAGEN izključen? Če ne, ga izključi.

Sicer poskusi tole: vzemi ven LCD, vključi ledice ter naloži v mego spodnji program. Če je vse v redu s procesorjem morajo ledice porta d utripati levo-desno.

Odveč je opomniti da izključi napajanje preden karkoli jemlješ ven ali daješ notri, kajne?
Koda:
$regfile = "m16def.dat"
$Crystal=4000000
$hwstack=40
$swstack=16
$framesize=32


Config Portd = Output
Dim N As Byte

Do
For N = 0 To 7
Set Portd.n
Waitms 200
Reset portd.n
Next

For N = 6 To 1 Step -1
Set Portd.n
Waitms 200
Reset Portd.n
Next

Loop
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 4:22 pm    Naslov sporočila:   Odgovori s citatom

JTAG je izključen. Koda deluje, in LEDice lepo skačejo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1712
Aktiv.: 7.71
Kraj: Ig

PrispevekObjavljeno: Pet Apr 26, 2013 4:24 pm    Naslov sporočila:   Odgovori s citatom

Kvadratki se prižgejo takoj, ko vklopiš napajanje. LCD ti pove, da deluje (kobajagi), vendar ni inicializiran.

Delo z LCDjem v Bascomu je precej enostavno. Najprej poglej z instrumentom, če ti pridejo pravi pini LCDja na prave pine AVRja. Kako imaš vezan R/W? Je vezan na maso? Bascom ne upošteva busy signala iz lcdja. Niti ne zna brati RAMa LCDja, tako da se R/W veže na maso. Če je le ta v zraku, ti LCD ne bo deloval.

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 4:30 pm    Naslov sporočila:   Odgovori s citatom

Pini so pravilno povezani, sem preizkusil z multimetrom. Če preverim napetost na VCC in R/W pinih dobim približno 5V, oznaka na plošči pa nakazuje, da je R/W GND.

https://www.dropbox.com/s/j12acs3forj1yra/2013-04-26%2016.28.55.jpg
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 4:35 pm    Naslov sporočila:   Odgovori s citatom

LEDice torej utripajo..pa utripajo s pravo frekvenco? Ker pavza 200 ms, bi moralo v eni sekundi priti od prve do pete....preveri. Namreč, če je frekvenca oscilatorja napačno izbrana tudi LCD ne bo delal.
Sicer je v skrajnem primeru možno, da LCD ne deluje...je nov?
Ko naložiš testni program za LCD - vklopi ledice - ti ledice porta D naključno utripajo ali se nič ne dogaja?
BTW...v prvi kodi sem najprej napačno napisal v vrstici config lcdpin - po pravilih mora biti tako, kot si imel ti - db4:PORTd.4 in ne PINd.4... sicer kot je meni znano deluje oboje, a vseeno popravi.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Soriyyx
Član
Član



Pridružen-a: Pet 26 Apr 2013 15:18
Prispevkov: 15
Aktiv.: 0.11
Kraj: Krško

PrispevekObjavljeno: Pet Apr 26, 2013 4:43 pm    Naslov sporočila:   Odgovori s citatom

Sem štopal in dobim ustrezni čas. LCD je popolnoma nov, danes je prišel po pošti. PD2 in PD4 konstantno gorita. PD3, PD5-7 na 1 sekundo skupaj utripnejo vendar ne v polni svetlosti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Apr 26, 2013 5:09 pm    Naslov sporočila:   Odgovori s citatom

Ravno delam isto - samo na avr7...
ni mi še uspelo ugotoviti, zakaj se po končanem programiranju nič ne dogaja...dokler zadevo na trdo ne resetiram - izklop napajanja in ponoven vklop... Tudi reset tipka ne pomaga, mega ne dela nič, doker ne izgubi napajanja. poskusi s tem, če bo šlo... če kaj ugotovim, poročam.

EDIT: sedaj (pol ure kasneje) zadeva iz neznanih razlogov dela...


Nazadnje urejal/a protoncek Pet Apr 26, 2013 5:30 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3, 4  Naslednja
Stran 1 od 4

 
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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group