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 

Spet problem pri inicializaciji LCDja

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
dha
Član
Član



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Sre Sep 15, 2010 8:34 am    Naslov sporočila: icon_sad Spet problem pri inicializaciji LCDja Odgovori s citatom

Pozdravljeni,
Zamenjal sem stari LCD z novim Winstarom WH2004A-YYH-ET#. Datasheeta kjer bi bila opisana inicializacija točno tega modela, ne najdem. Sem pa našel dve različni inicializacijo za podobna modela: WH2004A-YGB-JP in WH2004A-TMI-CT#, razlika je samo v osvetlitvah in polarizaciji. Po nobenem postopku mi ga ne uspe pravilno inicializirat.

Koda:
(glej prvo priponko)
DelayMs(15);
LCD_DATA = 0x03;
LCD_STROBE();
DelayMs(5);
LCD_DATA = 0x03;
LCD_STROBE();
DelayUs(200);
LCD_DATA = 0x03;   
LCD_STROBE();
DelayMs(5);
LCD_DATA = 0x02;
LCD_STROBE();
DelayUs(200);
lcd_write(0x28);   
lcd_write(0x0F);   
lcd_clear();
lcd_write(0x06);   

Koda:
(glej drugo priponko)
DelayMs(40);
LCD_DATA = 0x03;
LCD_STROBE();
DelayUs(40);
lcd_write(0x28);
DelayUs(40);
lcd_write(0x28);
DelayUs(40);
lcd_write(0x0F);
DelayUs(40);
lcd_write(0x01);
DelayMs(2);
lcd_write(0x06);

Pri drugi inicializaciji se mi vsaj kurzor pojavi, vendar ko pritisnem tipko, ali kaj drugega naredim naredi nekaj presledkov in vprašaje. Če pic še enkrat sprogramiram in poženem program, se na lcdju pojavi nek čuden znak nekje na sredini ...

Prosil bi za pomoč...



WH2004A.jpg
 Opis:
slika1
 Velikost datoteke:  195.11 KB
 Pogledana:  16 krat

WH2004A.jpg



wh2004a-ygb-jp.jpg
 Opis:
slika2
 Velikost datoteke:  313.77 KB
 Pogledana:  7 krat

wh2004a-ygb-jp.jpg


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



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Tor Sep 28, 2010 8:18 am    Naslov sporočila:   Odgovori s citatom

Čisto slučajno sem odkril kje je bil problem Idea

LCD sem inicializiral v fuknciji main. Nato kličem podprogram, kje se izpisuje na lcd... Brick wall
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 11.95
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Sep 28, 2010 8:55 am    Naslov sporočila:   Odgovori s citatom

In kje je tukaj problem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dha
Član
Član



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Tor Sep 28, 2010 9:42 am    Naslov sporočila:   Odgovori s citatom

Ne vem. če še enkrat kličem init v podprogramu mi ne dela debuggiranje... Think
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 11.95
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Sep 28, 2010 9:50 am    Naslov sporočila:   Odgovori s citatom

LCD inicializiraš enkrat. Ponavadi v glavnem programu. Potem izpisuješ povsod.

Pa ne razumem te. Trdiš, da si našel kje je problem in ne veš kje je...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dha
Član
Član



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Tor Sep 28, 2010 9:53 am    Naslov sporočila:   Odgovori s citatom

Ja pri meni je to problem, da če v podprogramu še enkrat ne inicializiram lcdja ne dela. Ne vem pa zakaj se to dogaja. Isto je s SPI...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
clownfish
Član
Član



Pridružen-a: Pet 05 Avg 2005 13:05
Prispevkov: 766
Aktiv.: 3.10
Kraj: Povir / Ljubljana

PrispevekObjavljeno: Tor Sep 28, 2010 9:57 am    Naslov sporočila:   Odgovori s citatom

Imam enake izkušnje..
Pač dvakrat poženeš inicializacijo.. in potem dela z vsemi vrstami LCD-jev..
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter123
Član
Član



Pridružen-a: Tor 13 Jan 2009 15:34
Prispevkov: 1500
Aktiv.: 7.14
Kraj: Lj.

PrispevekObjavljeno: Tor Sep 28, 2010 11:32 am    Naslov sporočila:   Odgovori s citatom

Lahko da imata problem s prezgodnjo inicializacijo.
MCU je že štartal LCD pa še ne in ko mu MCU že pošilja podatke se LCD šele zažene in posluša podatke prepozno.

Poizkusi inicializaciju čez 0,5 ali 1s po zagonu MCUja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dha
Član
Član



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Pet Okt 15, 2010 1:41 pm    Naslov sporočila:   Odgovori s citatom

Tudi tako, da dodam delay, ne deluje. V funkciji main samo nastavim PORT, TRIS, SPI... rad bi inicializiral še lcd. Enostano ne gre.

Po inicializaciji portov in ostalega je zanka while(1) v kateri kličem podprogram. Če v tem podprogramu dodam lcd_init(), je inicializacija uspešna...

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



Pridružen-a: Pet 03 Mar 2006 17:55
Prispevkov: 35
Aktiv.: 0.14
Kraj: Koper

PrispevekObjavljeno: Pet Okt 15, 2010 4:03 pm    Naslov sporočila:   Odgovori s citatom

Funkcija katero uporabljam za inicializacijo lcd-ja (enak model kot tvoj):
Kličem pa jo samo enkrat pred glavno zanko.
Koda:
   
_delay_ms(50);
   
tt=0b00000001;         //clear display
LcdCmd(tt);   
_delay_ms(3);

tt=0b00101000;         //function set (4-bit, 2-line, 5x8 dots)
LcdCmd(tt);

tt=0b00001100;         //display=on, cursor=off, blinking cursor=off
LcdCmd(tt);

tt=0b00000110;         //entry mode (increment mode, entire shift=off)
LcdCmd(tt);

tt=0b00000010;         //return home
LcdCmd(tt);
_delay_ms(2);


Ne spomnem se več zakaj imam 'clear display' na začetku Smile
Uporabljal pa sem datasheet od kontrolerja(KS 0066), je bolj podroben.

Funkcija LcdCmd razdeli ukaz na dva dela in ga vpiše v lcd.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dha
Član
Član



Pridružen-a: Sre 03 Feb 2010 10:59
Prispevkov: 27
Aktiv.: 0.14
Kraj: Lendava

PrispevekObjavljeno: Tor Okt 19, 2010 1:16 pm    Naslov sporočila:   Odgovori s citatom

Inicializacijska rutina dela, če jo kličem v podprogramu. Če pa jo kličem v funkciji main pa ne ...
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 -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni č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
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group