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 

ne najdem napake v enostavnem programu za pic16f627
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 29, 2007 6:09 pm    Naslov sporočila:   Odgovori s citatom

cist brezvezn primer kjer se to zgodi!!!
Koda:
list          p=16f84a
#include      <p16f84a.inc>
      __config    _HS_OSC&_WDT_OFF&_PWRTE_ON

Spot1 equ          H'30'
      movlw        D'5'
      movwf        Spot1
      clrw
      clrf         Spot1
      nop
      end


sem pregledo razlago tega error-ja ampak nic pametnega zapisanega.
-kolk je men iz tega jasno bi moral dolociti lokacijo kjer naj bi se program zacel izvajati nekako z ukazom "org..." ampak kolk je men jasno ce tega ne storis se pac zacne na 0x00. zato nevem zakaj mi ta error ven mece!!!

hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pon Jan 29, 2007 6:24 pm    Naslov sporočila:   Odgovori s citatom

Pa saj ravno TO ti želijo dopovedati v tistih razlagah, da se program NE začne na 0x00 sam od sebe.
Poglej si Prvi prispevek v tej temi in PREKOPIRAJ tiste tri vrstice org 0x00; goto zacni; org 0x04 v Svoj program.
To je OBVEZEN DEL programa.
Če bi rad pisal program kam drugam (ne na začetek), napišeš org 0x(veljaven naslov znotraj programskega pomnilnika), kar brez tega ukaza pa RES NE bo šlo Rolling Eyes .
LP,
Igor

Zgradba DELUJOČEGA PIC programa ima svoja pravila.
Poglej si tukaj, kako NAJ izgleda en konkreten program: Sprut .
PIC-Lernbeispiele (primeri).

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 29, 2007 6:36 pm    Naslov sporočila:   Odgovori s citatom

ocotno sem odkril napako...

ko sem dodal to "rst code 0x00" zadeva deluje!

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 29, 2007 6:39 pm    Naslov sporočila:   Odgovori s citatom

hvala za tisto stran ampak nemško neznam nič!

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pon Jan 29, 2007 7:02 pm    Naslov sporočila:   Odgovori s citatom

Mann musst viele Sprachen sprechen, to survive in our little planet .
Vsaj zgradbo programov si poglej.
Tam, kjer so primeri (PIC Lernbeispiele), je cela vrsta programov in vezij.
Sicer pa se da s tole knjižico zelo lepo začeti: Priporočam .
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 29, 2007 7:13 pm    Naslov sporočila:   Odgovori s citatom

Hvala...za tako ceno (8euro) sem knjigo kar narocil!

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 09, 2007 12:01 am    Naslov sporočila:   Odgovori s citatom

V MPLAB-u mi ko dam Build izpiše naslednje sporočilo:

Register in operand not in bank 0. Ensure that bank bits are correct.

Zadeva se sicer cisto lepo izvede brez error-jev ampak vseeno mu očitno nekaj ne paše!

Hvala za pomoč!

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
matijap
Član
Član



Pridružen-a: Sob 05 Jun 2004 23:24
Prispevkov: 230
Aktiv.: 0.97
Kraj: Žirovnica, LJ

PrispevekObjavljeno: Pet Feb 09, 2007 12:11 am    Naslov sporočila:   Odgovori s citatom

Pogosto se zgodi, da programer pozabi prestaviti bank, kadar je to potrebno, zato MPLAB izpiše opozorilo ob vsakem prehodu iz enega v drug bank v programu, da je programer na to še posebej pozoren. Bodi tudi ti Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pet Feb 09, 2007 1:14 am    Naslov sporočila:   Odgovori s citatom

Lepo dobesedno prepiši tisti stavek v google, pa boš videl, da je to eno čisto vsakdanje opozorilo, ki je povezano z Errorlevel 302.
Še enkrat preveri, da imaš dejansko pravilno vse v pravih bankah, kaj več pa ne moreš storiti. No, lahko izklopiš tisti 302, a potem te ne bo opozorilo niti takrat, ko boš res pomešal banke. To pa ni dobro, zato se pač shaja s tistimi opozorili Rolling Eyes, kakor je že matijap napisal.
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Iztok
Član
Član



Pridružen-a: Pet 08 Okt 2004 0:55
Prispevkov: 4974
Aktiv.: 21.00
Kraj: LJ

PrispevekObjavljeno: Pet Feb 09, 2007 1:39 am    Naslov sporočila:   Odgovori s citatom

Tudi meni stalno javlja, da banke niso pravilne pa vseeno vse deluje. Ne vem kaj je potem sploh smisel tistih sporočil? Confused

Izgleda da kar drži tale citat iz nekega foruma ...
Citiram:
Some registers are in bank 0, some are not. The assembler is dumb, it makes this comment for every access to a register in a bank other than 0, because it does not track your code to see which bank is selected.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pet Feb 09, 2007 9:38 am    Naslov sporočila:   Odgovori s citatom

Assembler dejansko ne more vedeti katera banka je izbrana v katerem trenutku, zato je povsem mozno, da poskusas nasloviti napacen register (poskusi izbrati drugo banko in dostopati recimo do portA registra - koda se povsem normalno prevede, rezultat bo pa napacen, ker bos dejansko prisel do trisA). Brez analize poteka programa je nemogoce vedeti, katera banka je izbrana, analize pa avtomatsko ni mogoce opraviti na vecini programov, pa se ljudje smo dalec bolj ucinkoviti pri analizi, ker v nasprotju z racunalnikom razumemo pomen kode, katero smo napisali in se zato osredotocimo le na relevanten segment.

Gre zgolj za opozorilo da preveri, v katero banko bo posegel program, in ne za napako.

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 09, 2007 9:39 pm    Naslov sporočila:  Začetnik Odgovori s citatom

Zdaj sem jaz čist notr padu in bolj kot študiram te zadeve seveda več je vprašanj ki se porajajo v moji glavi. Nekdo mi je predlagal tole knjigo "PROGRAMIRAJMO mikrokontrolerje" in morem rečt HVALA ker je res lepo razloženo. Sedaj pa imam vprasanje iz prve naloge v tej knjigi če jo kdo ima če ne bom prilepil program:
V nalogi s stikalom (uporabimo Debounce) prižgemo LED-ico, potem pa bi se ta morala po nekem casu ugasniti.
Ali lahko kar pokličemo Delay kot sem to storil jaz in z njim določimo tako čas za debounce kot čas za ledico! Ubistvu me samo zanima če bi ta program deloval!
"A ma ta program sploh kak smisel"???
Ali pa naredimo nov Delay za ledico!
Koda:
   processor   16f84a
      include      p16f84a.inc
      __config   _XT_OSC&_PWRTE_ON&_WDT_OFF
   
   
      org         0x000
      goto      Start
      org         0x005
   
Zanka1   equ      H'0C'
Zanka2   equ      H'0D'
LED      equ      D'3'
T      equ      D'1'

Start
      bsf      STATUS,RP0
      movlw   B'00000010'
      movwf   TRISA
      clrf   TRISB
      bcf      STATUS,RP0
      clrf   PORTB

      call   Pritisnjena

      bsf      PORTB,LED
      call   Delay
      bcf      PORTB,LED

Konec   goto   Konec
      
Pritisnjena
      btfsc   PORTA,T
      goto   Nic
      call   Delay
Spuscena
      btfsc   PORTA,T
      goto   Spuscena
      call   Delay
Nic
      return

Delay
      movlw   D'4'
      movwf   Zanka1
Cakaj
      incfsz   Zanka2,f
      goto   Cakaj
      decfsz   Zanka1,f
      goto   Cakaj
      return

      end
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Pet Feb 09, 2007 9:57 pm    Naslov sporočila:   Odgovori s citatom

Najprej poglej v tisti knjigi na stran 212. Nato tam napisani povezavi dodaj / in ime prve datoteke, ki se nahaja pod povezavo. Isto ponovi še za /imedrugedatoteke.zip .

Potrebuješ 2 zakasnitvi. Kratka (nekaj milisekund) je dovolj za "debounce". Po njej še enkrat preveriš, če je tipka res pritisnjena.
Če je, vklopiš Dolgo zakasnitev, ki traja toliko časa, kolikor želiš. Od mili do kilo sekund Very Happy .
Lahko pa imaš samo 1ms "Delay" za "debounce", nato pa za čas=Števec*Delay kličeš to zakasnitev, da dobiš daljšo. Med dolgim "Delayem" lahko tudi kaj bolj koristnega (časovno potratnega) počneš, a pazi glede "Call" in "Return", da se ne bo program izgubil.

Z zgornjim programom boš moral cel "Delay" držati tipko, preden se bo ponovno preverilo, če je res pritisnjena. Šele nato se bo za isti čas prižgala ledica.
LP,
Igor

p.s.: Lepo, da si zadovoljen s knjigo.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Sob Feb 10, 2007 1:38 pm    Naslov sporočila:   Odgovori s citatom

Sem pogledal ja tiste rešene naloge tam ampak mi sploh ni jasno kaj se dogaja pri 1. nalogi z tistimi And, Or, in Xor ukazi! (mogoce se pride cas za to) , se bom raje se malo ukvarjal s to nalogo!
Zato mi ni jasno, zakaj bi moral cel Delay drzati pritisnjeno tipko preden se spet preveri!
In ce mi lahko mogoce kdo da kako razlago od kod iz te zakasnitve 20ms.
Koda:
ZAKASNITEV
   decfsz   ZakasLo,f
   goto   $-1      ; 256*3-1=767
   decfsz   ZakasHi,f
   goto   ZAKASNITEV   ; (767+3)*n-1=19992
            ; n=26->20019->20.027ms

aja, ZakasLo smo prej dali na nic in ZakasHi ima vrednost 26!! Jasno mi je da če je
ZakasLo=0 in damo -1 je potem (ff - 256) ampak zakaj tu potem se krat tri in minus ena???
Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 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