 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
| Poglej prejšnjo temo :: Poglej naslednjo temo |
| Avtor |
Sporočilo |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Sre Sep 15, 2010 8:34 am Naslov sporočila: Spet problem pri inicializaciji LCDja |
|
|
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č...
| Opis: |
|
| Velikost datoteke: |
195.11 KB |
| Pogledana: |
16 krat |

|
| Opis: |
|
| Velikost datoteke: |
313.77 KB |
| Pogledana: |
7 krat |

|
|
|
| Nazaj na vrh |
|
 |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Tor Sep 28, 2010 8:18 am Naslov sporočila: |
|
|
Čisto slučajno sem odkril kje je bil problem
LCD sem inicializiral v fuknciji main. Nato kličem podprogram, kje se izpisuje na lcd...
|
|
| Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 11.95 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Sep 28, 2010 8:55 am Naslov sporočila: |
|
|
| In kje je tukaj problem?
|
|
| Nazaj na vrh |
|
 |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Tor Sep 28, 2010 9:42 am Naslov sporočila: |
|
|
Ne vem. če še enkrat kličem init v podprogramu mi ne dela debuggiranje...
|
|
| Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 11.95 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Tor Sep 28, 2010 9:50 am Naslov sporočila: |
|
|
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 |
|
 |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Tor Sep 28, 2010 9:53 am Naslov sporočila: |
|
|
| 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 |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 766 Aktiv.: 3.10 Kraj: Povir / Ljubljana
|
Objavljeno: Tor Sep 28, 2010 9:57 am Naslov sporočila: |
|
|
Imam enake izkušnje..
Pač dvakrat poženeš inicializacijo.. in potem dela z vsemi vrstami LCD-jev..
|
|
| Nazaj na vrh |
|
 |
Peter123 Član


Pridružen-a: Tor 13 Jan 2009 15:34 Prispevkov: 1500 Aktiv.: 7.14 Kraj: Lj.
|
Objavljeno: Tor Sep 28, 2010 11:32 am Naslov sporočila: |
|
|
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 |
|
 |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Pet Okt 15, 2010 1:41 pm Naslov sporočila: |
|
|
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...
|
|
| Nazaj na vrh |
|
 |
domobranko Član

Pridružen-a: Pet 03 Mar 2006 17:55 Prispevkov: 35 Aktiv.: 0.14 Kraj: Koper
|
Objavljeno: Pet Okt 15, 2010 4:03 pm Naslov sporočila: |
|
|
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
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 |
|
 |
dha Član

Pridružen-a: Sre 03 Feb 2010 10:59 Prispevkov: 27 Aktiv.: 0.14 Kraj: Lendava
|
Objavljeno: Tor Okt 19, 2010 1:16 pm Naslov sporočila: |
|
|
| Inicializacijska rutina dela, če jo kličem v podprogramu. Če pa jo kličem v funkciji main pa ne ...
|
|
| 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 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
|