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 

CodeVision, mega16, LCD?
Pojdi na stran 1, 2  Naslednja
 
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
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Tor Jul 22, 2008 1:37 am    Naslov sporočila:  CodeVision, mega16, LCD? Odgovori s citatom

Pri oživljanju LCD-ja sem naletel na problemček. Uporabljam CodeVision, ko skompajla ne javi nobene napake, ko pa naložim programček na mego16, pa LCD kaže v prvi vrstici same črne kvadratke(se pravi vsi piksli so aktivni).Na PORTA pa sta drugi in tretji bit 1,kjer je tudi lcd. Knjižnici sta vključeni,lcd inicijaliziran(2x16)...Na testni plati Easy AVR5.
Ali je možno, da je LCD skurjen? oz, zakaj ne dela?

Koda:


while (1)
      {   lcd_clear();
          lcd_putsf("hello world");
          delay_ms(1000);

      };

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: 765
Aktiv.: 3.23
Kraj: Povir / Ljubljana

PrispevekObjavljeno: Tor Jul 22, 2008 10:26 am    Naslov sporočila:  Re: CodeVision, mega16, LCD? Odgovori s citatom

- Si preveril če sam kontroler deluje (kakšen program kjer utripa ledica v takih primerih prav pride)

- Si preveril ali vsi pini ki gredo na LCD delujejo in lai so pravilno incializirani?

- Si preveril, da na teh pinih nimaš vključenih kakšnih nepotrebnih funcij (JTAG in podobno)

- Si preveri kako je z kontrastom LCD-ja?

- Če LCD brišeš in nanj spet kaj napišeš... se na LCD-ju kaj spreminja ali ne?

- Nikjer v programu ne vidim inicializacije LCD-ja. Potrebno ga ja najprej inicializirat, da ve kako delat (4 ali 8 bitni način in podobne nastavitve)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.51
Kraj: Krško

PrispevekObjavljeno: Tor Jul 22, 2008 5:47 pm    Naslov sporočila:   Odgovori s citatom

Probaj spremeniti register,ter uporabi namesto PORTA,PORTB. Poveži ga na protoboardu,če ti plošča ne omogoča spreminjanja registrov.Ali pa isti register s tem da spremeniš fuse bite.
_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
dragoon
Član
Član



Pridružen-a: Čet 03 Maj 2007 21:51
Prispevkov: 452
Aktiv.: 2.05
Kraj: Trojane

PrispevekObjavljeno: Tor Jul 22, 2008 9:04 pm    Naslov sporočila:   Odgovori s citatom

če kaže črne kvadratke potem lcd dela. pravilna je tudi nastavitev kontrasta. težava je v inicializaciji ali pa v povezavah. preveri.
_________________
LP, Mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
fricky
Član
Član



Pridružen-a: Pon 22 Sep 2003 15:37
Prispevkov: 260
Aktiv.: 1.10
Kraj: Ribniško Pohorje

PrispevekObjavljeno: Tor Jul 22, 2008 10:29 pm    Naslov sporočila:   Odgovori s citatom

Najlažje je pomagat če prilepiš celo kodo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Jul 25, 2008 12:53 am    Naslov sporočila:   Odgovori s citatom

LCD ni skurjen, je bil kolega tako prijazen, da mi je spisal v bascomu testen programček.
Kako naj spremenim fuse bite?V CVAVR imam nastavljeno "program fuse bits"
odgovor za teslo
-kontroler dela, sem naredil preprosto el. ključavnico...dela super
-pini so uredu, ne vem, če so prav inicijalizirani
-jtag ni vključen na teh pinih
-na lcd ne morem pisati(beri ne znam), kaže črne kvadratke
-lcd, naj bi bil inicijaliziran

Koda:
*****************************************************
This program was produced by the
CodeWizardAVR V2.03.3 Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 22.7.2008
Author  : Freeware, for evaluation and non-commercial use only
Company :
Comments:


Chip type           : ATmega16
Program type        : Application
Clock frequency     : 4,000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 256
*****************************************************/

#include <mega16.h>
#include <lcd.h>
 #include<delay.h>
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x1B ;PORTA
#endasm


// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xff;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

while (1)
      {        lcd_clear();
         
          lcd_putsf("hello world");
          delay_ms(1100);
   

      };
}


tiso prej je naredil čarovnik...izbral sem, da je na portu A, to je pa to.


pa ne mi zamerit če se ta teden ne javim, ker grem na morje:)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Avg 01, 2008 2:58 am    Naslov sporočila:   Odgovori s citatom

A se je našel že kakšen junak, ki je našel napako? Bil bi zelo hvaležen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.51
Kraj: Krško

PrispevekObjavljeno: Pet Avg 01, 2008 8:33 am    Naslov sporočila:   Odgovori s citatom

Za foro prestavi LCD na PORTB.
_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Pet Avg 01, 2008 7:50 pm    Naslov sporočila:   Odgovori s citatom

Aha... plata mi to ne omogoča, bom precinil. Samo toliko, a sintaksa naj bi bila pravilna?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5529
Aktiv.: 24.06
Kraj: Domzale

PrispevekObjavljeno: Sob Avg 02, 2008 8:36 am    Naslov sporočila:   Odgovori s citatom

Dvomim, da bi bil kriv port.a, če s programom, napisanim v Bascomu display dela. Tudi fuse biti so potemtakem nastavljeni pravilno in očitno je problem v samem programu. Mislim, da je prestavljanje na drug port izguba časa.

Lp, Grega
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dragoon
Član
Član



Pridružen-a: Čet 03 Maj 2007 21:51
Prispevkov: 452
Aktiv.: 2.05
Kraj: Trojane

PrispevekObjavljeno: Sob Avg 02, 2008 12:04 pm    Naslov sporočila:   Odgovori s citatom

katero plato uporabljaš? preveri če imaš povezano na prave bite porta
Koda:

The LCD module must be connected to the port bits as follows:


[LCD]   [AVR Port]
RS (pin4) ------    bit 0
RD (pin 5) ------   bit 1
EN (pin 6) ------   bit 2
DB4 (pin 11) ---   bit 4
DB5 (pin 12) ---   bit 5
DB6 (pin 13) ---   bit 6
DB7 (pin 14) ---   bit 7


inicializacija mislim da je prava, probaj oz primerjaj še primer iz helpa. brezglavo menjanje porta je brezveze, razen če nimaš defektnih pinov. tudi to se dogaja, da crkne samo en pin na portu.

_________________
LP, Mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Sob Avg 16, 2008 1:34 am    Naslov sporočila:   Odgovori s citatom

Aha, hvala Mitja, mi je že volkd predlagal naj pogledam v knjižnico, enable in rd sta na drugih pinih, kot je napisano v knjižnici. Uporabljam easy avr5,kjer so pini malo pomešani.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Ned Avg 17, 2008 11:45 am    Naslov sporočila:   Odgovori s citatom

Ja...tole sem spremenil
Koda:
 
PREJ 
#asm
    .equ __lcd_direction=__lcd_port-1
    .equ __lcd_pin=__lcd_port-2
    .equ __lcd_rs=0
    .equ __lcd_rd=1
    .equ __lcd_enable=2
    .equ __lcd_busy_flag=7
#endasm
*/
ZDAJ
#asm
    .equ __lcd_direction=__lcd_port-1
    .equ __lcd_pin=__lcd_port-2
    .equ __lcd_rs=2
    .equ __lcd_rd=1
    .equ __lcd_enable=3
    .equ __lcd_busy_flag=7
#endasm


rs bit je na pinu2,e pa na 3

ampak stvar še vedno ne oživi. Koda je pa še vedno taka:
Koda:

lcd_gotoxy(0,0);
lcd_putsf("se vedno ne delam!!!");
while (1);
     


Ali sem dovolj spremenil knjižnico, meni se zdi, da naj bi zdaj moglo delat. Vsak predlog bo v veliko pomoč
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 60.06
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Ned Avg 17, 2008 2:07 pm    Naslov sporočila:   Odgovori s citatom

Hmmm..
ali si dovolj ali ne spremenil ne vem. Vem pa, da ko so problemi jih je dobro razdelit na več delov..

Predlagam, da najprej narediš začasni vmesnik med ploščo in LCD-jem in uporabiš nespremenjeno knjižnico. Če ti uspe to pognat korektno, potem nadaljuj z spreminjanjem knjižnice.

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Noordung
Član
Član



Pridružen-a: Tor 22 Jan 2008 18:07
Prispevkov: 23
Aktiv.: 0.11
Kraj: Škofja Loka

PrispevekObjavljeno: Tor Okt 07, 2008 8:45 pm    Naslov sporočila:   Odgovori s citatom

No takole, končno sem si spet uzel čas za mojo plato tako, da je bil res volkov predlog izmed boljših.

Naj razložim: Knjižnica je skoraj vsa napisana v asemblerju zato sem si prebral celoten datasheet od hitacija. Potem sem šel v knjižnico od CVAVR in si vsako vrstico raztolmačil in napisal zraven komentar. Tako sem prišel do pomembne ugotovitve. Plata EasyAVR ima bit R/W vezan na maso, tako da mora biti knjižnica napisana tako, da nič ne uporablja tega bita. Po večini pa sem našel v drugih knjižnicah in tudi v te od CVAVR-ja, da kontroler tudi bere iz lcd-ja, se pravi spreminja vrednost R/W bita, in gleda, če je hitaci kontroller že sprejel dani ukaz, potem dadaljuje z naslednjim ukazom. Kontroler je čakal, da bo sprejel hitacijev povratni ukaz pa tega ni nikoli dočakal...zato je štrajkal.

Pred tem sem trdno verjel, da je ta bit nepomemben, saj samo pišemo na display.
Vmes sem si naredil prekonektor in stvar deluje, malo sem na začetku premešal knjižnice E,R/W,RS pine in definiral port

Še enkrat pa hvala volku in ostalim....sedaj pa novim dogodivščinam naproti!!
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 1, 2  Naslednja
Stran 1 od 2

 
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group