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 

Atmega16 in LCD - Čudni znaki
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
LukaK
Član
Član



Pridružen-a: Ned 18 Okt 2009 11:51
Prispevkov: 18
Aktiv.: 0.09
Kraj: Škofja Loka

PrispevekObjavljeno: Čet Mar 04, 2010 8:36 am    Naslov sporočila:   Odgovori s citatom

No, po krajšem premoru (namenjen je bil preizkušanju vseh možnih kombinacij) sem prišel do nekih spoznanj, a še ne do dokončne rešitve. Če na tiskanini prispajkam na podnožje mega8 ploščati kabel in ga povežen z 20pin podnožjem za attiny2313, krmilnik zaprogramiram mi zaslon normalno deluje. Torej lahko sklepam, da je konstrukcija vezja in priljučkov ustrezna. Sedaj moram samo še prepričati mega8, da mi izvede inicializacijo. Mislim, da se težava skriva v PORTD mikrokrmilnika mega8. Sedaj pa spet veselo na delo.
_________________
LP Luka
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Član
Član



Pridružen-a: Tor 08 Jun 2004 14:29
Prispevkov: 323
Aktiv.: 1.36

PrispevekObjavljeno: Čet Mar 04, 2010 6:55 pm    Naslov sporočila:   Odgovori s citatom

LukaK je napisal/a:
Mislim, da se težava skriva v PORTD mikrokrmilnika mega8. Sedaj pa spet veselo na delo.


Mislim, da portd.0 in portd.1 ne delujeta na ldc-ju, vsaj meni ni uspelo.
Prestavi pine od d2 naprej in mora delovati tudi M8.



LP, stursc
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Mar 04, 2010 7:43 pm    Naslov sporočila:   Odgovori s citatom

stursc je napisal/a:
LukaK je napisal/a:
Mislim, da se težava skriva v PORTD mikrokrmilnika mega8. Sedaj pa spet veselo na delo.


Mislim, da portd.0 in portd.1 ne delujeta na ldc-ju, vsaj meni ni uspelo.
Prestavi pine od d2 naprej in mora delovati tudi M8.



LP, stursc


Ne vidim hardwerskega razloga, da ne bi delala. Pina sta čisto običajna. Morda kak višjenivojski jezik daje prednost USAR-tu. Pina sta še lahko RX-TX. Displej bo delal na vsakem IO pinu.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LukaK
Član
Član



Pridružen-a: Ned 18 Okt 2009 11:51
Prispevkov: 18
Aktiv.: 0.09
Kraj: Škofja Loka

PrispevekObjavljeno: Čet Mar 04, 2010 11:53 pm    Naslov sporočila:   Odgovori s citatom

Tudi če je najnižji pin d.2 (izpustil sem d.1 in d.0) zaslon prek m8 ne deluje-na tiny2313 pač. Na izhodih (pinih LCD-ja) dobivam "enake" pulze prek m8 in pa prek 2313, samo s to razliko, da se na m8 LCD ne inicializira pa pika. Program je enak, v prevajalniku so pini prav tako nastavljeni vsakokrat posebej, frekvenca enaka...poizkusil sem že z dvema m8-v primeru, če bi bil prvi slučajno zanič, pa je efekt isti.
_________________
LP Luka
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LukaK
Član
Član



Pridružen-a: Ned 18 Okt 2009 11:51
Prispevkov: 18
Aktiv.: 0.09
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Mar 05, 2010 8:43 pm    Naslov sporočila:   Odgovori s citatom

No pa še eno novo poučno spoznanje, ki pa še ne pomeni rešitve!
Torej: v helpu od bascoma sem našel (sicer že davno tega) knjižnjico "lcd4busy.lib" in jo prevedel za "štos" na tiny2313. Pa je LCD deloval brez problema-naj opomnim, da je potrebno R/W priključek zaslona vezati na krmilnik. Ko pa sem vse skupaj prestavil na mego8 in simetrično zamenjal oznake portb->portd pa je bilo uspeha kaj hitro konec. Zaslon se spet ni več inicializiral. Do tega prebliska sem prišel na nekem nemškem forumu, kjer je bilo omeneno, da je mogoče, da je kontroler prehiter pri inicilaizaciji za LCD. Pa sem omogočil še "busy" linijo. Pa je pesem spet ista.

_________________
LP Luka
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pet Mar 05, 2010 8:59 pm    Naslov sporočila:   Odgovori s citatom

Luka,

Kako imaš povezano? - bom dal na testno eno Mego8 pa na hitro spisal testni program. (sicer v assemblerju), da boš lahko preveril, če ni slučajno težava hardware.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pet Mar 05, 2010 10:10 pm    Naslov sporočila:   Odgovori s citatom

Tukaj imaš na hitro napisano (v prilogi je tudi hex)

Data linije PD0-PD3 RS-PD4 EN-PD5 R/W vežeš na maso.

Testirano na enovrstičnem displeju, ki je bil ravno pri roki. Dela brez programske spremembe pri oscilatorju od 1M-8M (uporabljen je bil interni oscilator)


Koda:
.include "m8def.inc"


;.equ RST=0
;.equ ENB=1

.equ RST=4
.equ ENB=5



#define RS PortD,RST
#define EN PortD,ENB


.def tmp=r16
.def tmp2=r17

.org 0x0
   rjmp GlProg


.org 0x13

GlProg:
   ldi tmp,low(ramend)
   out SPL,tmp
   ldi tmp,high(ramend)
   out SPH,tmp

   ldi tmp,0b111111
   out DDRD,tmp
;   sbi DDRC,RST
;   sbi DDRC,ENB


   rcall LcdInt


   ldi tmp,0b10000000
   rcall PosljiUkaz

   ldi tmp,'T'
   rcall PosljiZnak
   ldi tmp,'e'
   rcall PosljiZnak
   ldi tmp,'s'
   rcall PosljiZnak
   ldi tmp,'t'
   rcall PosljiZnak


   ldi tmp,0b11000000      ;vrstica 2
   rcall PosljiUkaz

   ldi tmp,'E'
   rcall PosljiZnak
   ldi tmp,'l'
   rcall PosljiZnak
   ldi tmp,'e'
   rcall PosljiZnak
   ldi tmp,'k'
   rcall PosljiZnak
   ldi tmp,'t'
   rcall PosljiZnak
   ldi tmp,'r'
   rcall PosljiZnak
   ldi tmp,'o'
   rcall PosljiZnak
   ldi tmp,'n'
   rcall PosljiZnak
   ldi tmp,'i'
   rcall PosljiZnak
   ldi tmp,'k'
   rcall PosljiZnak
   ldi tmp,'.'
   rcall PosljiZnak
   ldi tmp,'s'
   rcall PosljiZnak
   ldi tmp,'i'
   rcall PosljiZnak



   nop
   rjmp PC-1







LcdInt:

   ldi tmp,150
   rcall XPavza

   ldi tmp,0b11
   out PortD,tmp
   rcall Poslji
   ldi tmp,41
   rcall XPavza

   rcall Poslji
   rcall Pavza100uS

   rcall Poslji
   ldi tmp,41
   rcall XPavza

   ldi tmp,0b10
   out PortD,tmp
   rcall Poslji
   rcall Pavza100uS


   rcall Poslji
   ldi tmp,0b1000
   out PortD,tmp
   rcall Poslji
   rcall Pavza100uS

   clr tmp
   out PortD,tmp
   rcall Poslji
   ldi tmp,0b1000
   out PortD,tmp
   rcall Poslji
   rcall Pavza100uS


   clr tmp
   out PortD,tmp
   rcall Poslji
   ldi tmp,0b1101
   out PortD,tmp
   rcall Poslji
   ldi tmp,17
   rcall XPavza
   


   clr tmp
   out PortD,tmp
   rcall Poslji
   ldi tmp,0b110
   out PortD,tmp
   rcall Poslji
   rcall Pavza100uS
   
   clr tmp
   out PortD,tmp
   rcall Poslji
   sbi PortD,0
   rcall Poslji
   ldi tmp,200
   rcall XPavza
   ret


PosljiZ:
   sbi RS
Poslji:
   sbi EN
   rcall Pavza100uS
   cbi EN
   cbi RS
   ret



Xpavza:
   rcall Pavza100uS
   dec tmp
   brne Xpavza
   ret



;----------------------------------------------------------
;procedura poslje znak katerega dobi v tmp
;----------------------------------------------------------
PosljiZnak:
   swap tmp
   push tmp
   andi tmp,0b1111
   in tmp2,PortD
   andi tmp2,0b11110000      ;
   or tmp,tmp2
   out PortD,tmp
   rcall PosljiZ
   pop tmp
   swap tmp
   andi tmp,0b1111
   or tmp,tmp2
   out PortD,tmp
   rcall PosljiZ
   ret


;----------------------------------------------------------
;procedura poslje ukaz katerega dobi v tmp
;----------------------------------------------------------
PosljiUkaz:
   swap tmp
   push tmp
   andi tmp,0b1111
   in tmp2,PortD
   andi tmp2,0b11110000      ;
   or tmp,tmp2
   out PortD,tmp
   rcall Poslji
   pop tmp
   swap tmp
   andi tmp,0b1111
   or tmp,tmp2
   out PortD,tmp
   rcall Poslji
   ret


;-----------------------------------------------------------
;Pavza 100uS   Oscilator 4Mhz
;-----------------------------------------------------------
Pavza100uS:
   push r20
   ldi r20,129
P_zanka:
   dec r20
   brne P_zanka
   pop r20
   nop
   nop
   ret



LCDM8.ZIP
 Opis:

Download
 Ime datoteke:  LCDM8.ZIP
 Velikost datoteke:  7.03 KB
 Downloadano:  2 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Član
Član



Pridružen-a: Tor 08 Jun 2004 14:29
Prispevkov: 323
Aktiv.: 1.36

PrispevekObjavljeno: Sob Mar 06, 2010 8:26 am    Naslov sporočila:   Odgovori s citatom

LukaK je napisal/a:

Ko pa sem vse skupaj prestavil na mego8 in simetrično zamenjal oznake portb->portd pa je bilo uspeha kaj hitro konec.


Luka, v prilogi imaš delujočo kodo v Bascomu.
Poglej tudi print screen.


LP, stursc



LCD.ZIP
 Opis:

Download
 Ime datoteke:  LCD.ZIP
 Velikost datoteke:  65.06 KB
 Downloadano:  21 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lbozo
Član
Član



Pridružen-a: Pet 18 Jan 2008 23:51
Prispevkov: 71
Aktiv.: 0.33
Kraj: Vodice

PrispevekObjavljeno: Sob Mar 06, 2010 10:44 am    Naslov sporočila:   Odgovori s citatom

Poglej še pri fuse bitih, če imaš omogočen USART. Če je, te to zeza. TAko sem jaz enkrat mislil da je pokvarjen en port od atmege32, dokler nisem v fuse bitih umaknil kljukico iz JTAG-enabled. Težave z LCD-jem so čudežno izginile.
_________________
Lep pozdrav, Božo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LukaK
Član
Član



Pridružen-a: Ned 18 Okt 2009 11:51
Prispevkov: 18
Aktiv.: 0.09
Kraj: Škofja Loka

PrispevekObjavljeno: Sob Mar 06, 2010 3:48 pm    Naslov sporočila:   Odgovori s citatom

Ja, težava je bila res v uart-u , natančneje v pinih pd.0 in pd.1. Kot mi je namignil lbozo, sem poiskušal izključiti USART, a ga prek fuse bitov na mega8 ni možno. Zato sem vzel ponovno v roke podatkovni list, stran 155, prečital par deset strani in dojel da:
"...• Bit 4 – RXEN: Receiver Enable
Writing this bit to one enables the USART Receiver. The Receiver will override normal port operation
for the RxD pin when enabled. Disabling the Receiver will flush the receive buffer
invalidating the FE, DOR and PE Flags.
• Bit 3 – TXEN: Transmitter Enable
Writing this bit to one enables the USART Transmitter. The Transmitter will override normal port
operation for the TxD pin when enabled. The disabling of the Transmitter (writing TXEN to zero)
will not become effective until ongoing and pending transmissions are completed (i.e., when the
Transmit Shift Register and Transmit Buffer Register do not contain data to be transmitted).
When disabled, the Transmitter will no longer override the TxD port..."

napisal sem ukaz:
Koda:
Ucsrb = &B00000000

ter upošteval knjižnjico "lcd4busy.lib" zagnal in deluje. Sedaj preskušam še druge kombinacije, o rezultatih bom poročal. Hvala vsem, ki ste mi poiskušali pomagati.

_________________
LP Luka
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
žrepko
Član
Član



Pridružen-a: Tor 23 Mar 2010 20:12
Prispevkov: 700
Aktiv.: 3.77
Kraj: Ptuj-Maribor

PrispevekObjavljeno: Pon Mar 29, 2010 7:19 pm    Naslov sporočila:   Odgovori s citatom

se muči kdo v Codevision AVR in z LCD-jem?
Sem začetnik in poiskušam izpisovat na LCD pa mi sploh ne grata. Vem da mam drugače priključen LCD ampak sem v zmedi kje nastavit v programu kako imam zvezano..

Lahko kdo pomaga prosim?

Uporabljam pa C jezik.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group