Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problemi kod kompajliranja PIC - asembler

[es] :: Elektronika :: Mikrokontroleri :: Problemi kod kompajliranja PIC - asembler

[ Pregleda: 3699 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

PedjaZ

Član broj: 48898
Poruke: 2042



+141 Profil

icon Problemi kod kompajliranja PIC - asembler12.10.2009. u 17:41 - pre 143 meseci
http://www.qsl.net/om3cph/counter/led/led.html

Uvek dobijam ovo (mpasm dos verzija koja je dosla uz program):
Error[113] G:\ASM\ANODA8.ASM 347 : Symbol not previously defined (STATUS)
Error[113] G:\ASM\ANODA8.ASM 349 : Symbol not previously defined (TRISB)
Error[113] G:\ASM\ANODA8.ASM 350 : Symbol not previously defined (STATUS)

Dok MPLAB IDE v7.30 kaze jos vise:
Error[113] 233 : Symbol not previously defined (ClearCF)
Error[122] 237 : Illegal opcode (rrf)
Error[113] 283 : Symbol not previously defined (ClarCF)
Error[122] 286 : Illegal opcode (rrf)
Error[113] 348 : Symbol not previously defined (STATUS)
Error[113] 350 : Symbol not previously defined (TRISB)
Error[113] 351 : Symbol not previously defined (STATUS)


Probao i sa originalnim fajlom ali isto.

Asembler ne znam - moze li gotovo resenje i kratko objasnjenje sta nije u redu.
Hvala

U prilogu je originalni program, izmenjeni koji mi treba i include fajlovi,
mpasm(dos) sa sajta

Prikačeni fajlovi
 
Odgovor na temu

PedjaZ

Član broj: 48898
Poruke: 2042



+141 Profil

icon Re: Problemi kod kompajliranja PIC - asembler12.10.2009. u 18:31 - pre 143 meseci
Pocetnicka greska
Zaboravio include p16f84.inc i to mora da je uvucen da ne bi prijavio gresku


Ali sada pise ovo
Message[302] G:\ASM\OVO.ASM 351 : Register in operand not in bank 0. Ensure that bank bits are correct.

???

 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1585
93.86.221.*



+321 Profil

icon Re: Problemi kod kompajliranja PIC - asembler12.10.2009. u 18:43 - pre 143 meseci
U sorsu koju kompajliraš nemaš definisane te nazive. Dodaj u sors include naredbu za P16F84.inc i stavi ovu liniju
list p=16f84, f=inhx8m

Pozdrav.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1585
93.86.221.*



+321 Profil

icon Re: Problemi kod kompajliranja PIC - asembler12.10.2009. u 18:46 - pre 143 meseci
Citat:
PedjaZ:Ali sada pise ovo
Message[302] G:\ASM\OVO.ASM 351 : Register in operand not in bank 0. Ensure that bank bits are correct.

Vidim da si se snašao dok sam ti odgovarao.

A to je samo upozorenje da se radi nad registrom koji je u drugoj banci i da treba biti oprezan tj. proveriti da li su bitovi za izbor banke dobro postavljeni. Znači nije greška već upozorenje, ali ako ti ne radi program, postoji šansa da pre te naredbe nisu postavljeni bitovi za izbor banke kako treba.

Pozdrav.
Sinisha
 
Odgovor na temu

barum
Bojan Radosavljevic

Član broj: 52522
Poruke: 418
*.uforce.net.



+1 Profil

icon Re: Problemi kod kompajliranja PIC - asembler12.10.2009. u 20:55 - pre 143 meseci
Ova poruka ume da bude dosadna. U kodu "original.asm" i "OvoMiTreba.asm" postoji preklapanje definicija koje se inače nalaze u include fajlu "P16F84.inc". Preklapanje čak definiše vrednosti koje ne adresiraju bank1 što nije ni malo dobra praksa.

Neki iskusni programeri (kudos) uspeli su dosadnu poruku da okrenu u svoju korist uz pomoć par jednostavnih makroa:

Code:

 
BANK0    MACRO        ; ovaj makro treba koristiti umesto "BCF STATUS,RP0"
  ERRORLEVEL     +302
  BCF    STATUS,RP0
 ENDM

BANK1    MACRO        ; a ovaj umesto "BSF STATUS,RP0"
  BSF    STATUS,RP0
  ERRORLEVEL     -302
 ENDM



Primeri izleta u banku 1 i nazad iz nje u banku 0 se mogu videti u prikačenom kodu

prvi izlet linije 162 do 175,
drugi linije od 342 do 344,
treći 419 do 422,
i četvrti 549 do 552.

Iz koda su uklonjene i definicije kojima je mesto u include fajlu.
Prikačeni fajlovi
 
Odgovor na temu

PedjaZ

Član broj: 48898
Poruke: 2042



+141 Profil

icon Re: Problemi kod kompajliranja PIC - asembler12.10.2009. u 22:18 - pre 143 meseci
Hvala vam obojci.
Sutra cu da isprobam pa javljam sta je bilo.

Prikačeni fajlovi
 
Odgovor na temu

PedjaZ

Član broj: 48898
Poruke: 2042



+141 Profil

icon Re: Problemi kod kompajliranja PIC - asembler14.10.2009. u 00:58 - pre 143 meseci
barum
Ne mogu da se snadjem sa tim sto si mi ostavio.
Kada idem na open project u mplab-u (v7.30)
nista ne otvori.
Kada probam da kompajliram .asm
izbaci gomilu gresaka.
...
Error[113]
Symbol not previously defined (IndF)
Symbol not previously defined (IntCon)
Symbol not previously defined (PortA)
Symbol not previously defined (TrisA)
Symbol not previously defined (IndF)
Symbol not previously defined (PortB)
Symbol not previously defined (PortA)
Symbol not previously defined (IntCon)
...

---------------------

Dodao u onaj moj .asm
list p=16f84, f=inhx8m
include "P16F84.inc"
i sve je proslo u redu sem onog
Register in operand not in bank 0. Ensure that bank bits are correct.
sto sam zanemario.
Ubacio sve to u PIC (doduse 16F84A - umesto 16F84 - probao, isti HEX bude)
i F-counter pokazuje sve nule,
ali ne reaguje kada se dovede nesto na ulaz.
Uvek isto 0000000.0
Sada gde je greska?
Mozda sam nesto pogresio u tajminzima (t1234led.inc, z4led.inc) - dva programa koja se koriste za izracunavanje, daju razlicite rezultate.
Pokusavam simulaciju u Proteusu ali mi nesto ne ide.

---------------------
Moze pomoc oko Proteusa (v7.1 sp2)?
Zasto se zaglupi ako stavim clock PIC-a 4MHz?
Kada ga smanjim na recimo 20KHz pokaze isto kao na mom radnom stolu 0000000.0
Cim je clock veci pocne da brlja.
Da li je to do mog HEX-a, Proteusa ili vec neceg drugog?

---------------------




[Ovu poruku je menjao PedjaZ dana 14.10.2009. u 02:54 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1585
93.86.221.*



+321 Profil

icon Re: Problemi kod kompajliranja PIC - asembler14.10.2009. u 04:53 - pre 143 meseci
Ako si ovo pravio od nule, bolje da si uzeo da radiš sa LCD displejom, ima više prednosti od LED.
Ovo od baruma - opet kao da nemaš definicije registara. Proveri u opcijama kompajlera da nije slučajno uključena opcija "match case"; nisam odavno radio sa čistim ASM-om, ali koliko se sećam postoji takva neka opcija.
Što se tiče kontrolera, nebitno da li je sa A ili bez, ne utiče na rad, što znači da je greška negde drugde. To što imaš ispis na displeju je dobar znak, znači da je hardver ispravan, pa i deo programa za ispis na displej, a samim tim verovatno i veći deo programa. Prvo što mi je palo na pamet je da si možda uključio WDT.
Što se tiče PROTEUS-a, nadam se da nisi pravio spoljni oscilator jer nema potrebe - dovoljno je da u properties upišeš željenu frekvencu. Nisi napisao šta brlja, ali pretpostavljam da je u pitanju ispis na LED displej. Ako je to, onda si uzeo obične displeje, a moraš da uzmeš one već predvidjene za multipleks. Inače, ja sam u PROTEUS-u simulirao sistem sa 4 PIC-a koji su svi radili na 4 MHz i procesor (Athlon na 3 GHz) je bio zauzet oko 75% što znači da to tvoje on može da "potera" bez problema. Ako si uključio WDT pa dolazi do resetovanja, to će PROTEUS u prozoru za poruke da ti napiše. Prvo reši problem sa PROTEUS-om pa da vidimo dalje jer će biti mnogo lakše to srediti kroz njega.

Pozdrav.
Sinisha
 
Odgovor na temu

PedjaZ

Član broj: 48898
Poruke: 2042



+141 Profil

icon Re: Problemi kod kompajliranja PIC - asembler14.10.2009. u 14:55 - pre 143 meseci
rsinisa
U pravu si za WDT!
Ostalo je ukljuceno u IcProg-u.
Sada sam odradio bez njega i kada dovedem nesto na ulaz,
pocne da prikazuje brojke na segmentima ali nasumice ih pise i stalno menja.
Barem nesto pokazuje :)
----

U prikacenim fajlovima je to sto sam odradio u Proteusu
pa slobodno reci gde sam pogresio.
Oscilator je naravno zadat u properties ali ako stavim 4MHz cudno ispisuje,
a ovako sa 20KHz lepo radi - barem taj deo.
 
Odgovor na temu

barum
Bojan Radosavljevic

Član broj: 52522
Poruke: 418
*.uforce.net.



+1 Profil

icon Re: Problemi kod kompajliranja PIC - asembler14.10.2009. u 18:52 - pre 143 meseci
Citat:
PedjaZ:
Kada idem na open project u mplab-u (v7.30)
nista ne otvori.


Ja trenutno imam MPLAB IDE v8.33


Citat:

...
Error[113]
Symbol not previously defined (IndF)
Symbol not previously defined (IntCon)
Symbol not previously defined (PortA)
Symbol not previously defined (TrisA)
Symbol not previously defined (IndF)
Symbol not previously defined (PortB)
Symbol not previously defined (PortA)
Symbol not previously defined (IntCon)


Problem sa razlikovanjem velikih i malih slova. Kod mene u projektu sam bio isključio (Disable case sensitivity) ali pošto nisi mogao da ga otvoriš napravio si novi u kome je podrazumevano podešavanje da pravi razliku.

Source sa ispravljenom veličinom slova:
Prikačeni fajlovi
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1585
93.86.195.*



+321 Profil

icon Re: Problemi kod kompajliranja PIC - asembler14.10.2009. u 20:43 - pre 143 meseci
Citat:
PedjaZ:U prikacenim fajlovima je to sto sam odradio u Proteusu
pa slobodno reci gde sam pogresio.
Oscilator je naravno zadat u properties ali ako stavim 4MHz cudno ispisuje,
a ovako sa 20KHz lepo radi - barem taj deo.


Po meni, šema je ispravna, program ti ne valja. Kada stavim na 4 MHz, ispis radi lepo neko kratko vreme pa se displej ugasi, a kada stavim na tih čuvenih 20 kHz, radi, ali upravo toliko puta duže koliko je sporiji takt. To me navodi na zaključak da ti ne valja program. Elem, verovatno se za tu 1 sekundu radi merenje, a nakon toga prikaz izmerene vrednosti. Znači, traži grešku u tom delu, (merenje, konverzija, prikaz te vrednosti). Ja stvarno nemam vremena da se sada bavim time, ali bih ti preporučio da radiš korak po korak: prvo sredi da imaš stalno ispis i ništa drugo, znači da se program vrti u praznoj petlji. Onda sredi da možeš da prikažeš na bilo kom mestu zadatu cifru. Onda sredi da radi merenje siganala, i na kraju konverziju i prikaz.

Pozdrav.
Sinisha
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Problemi kod kompajliranja PIC - asembler

[ Pregleda: 3699 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.