Vizitator cosscat Postat Ianuarie 5, 2012 Partajează Postat Ianuarie 5, 2012 Salutare tuturor,Incerc sa fac un program care foloseste cod relocabil, adica am mai multe fisiere asm ce contin diferite module soft pe care le folosesc des.Problema este ca daca le compilez pe toate intr-un proiect, cu MPLAB totul e fain, cand insa incerc la fel cu Protheus nu functioneaza deloc, da o gramada de erori.Aveti vreo idee cum pot face sa rezolv aceasta problema? Va multumesc anticipat.Postez codul de test ce functioneaza in MPLAB si nu vrea in VSM:In VSM le adaug pe amandoua la add source code . Am atasat print screen-ul cu erorilefisier delay10.asm: #include ; any baseline device will do GLOBAL delay10_R;***** VARIABLE DEFINITIONS UDATAdc1 res 1 ; delay loop countersdc2 res 1dc3 res 1;***** Subroutines CODEdelay10_R ; delay W x 10ms banksel dc3 ; -> ?+1+Wx(3+10009+3)-1+4 = Wx10.015ms movwf dc3 dly2 movlw .13 ; repeat inner loop 13 times movwf dc2 ; -> 13x(767+3)-1 = 10009 cycles clrf dc1 ; inner loop = 256x3-1 = 767 cyclesdly1 decfsz dc1,f goto dly1 decfsz dc2,f ; end middle loop goto dly1 decfsz dc3,f ; end outer loop goto dly2 retlw 0 ENDFisier flash_LED.asm: list p=12F509 #include EXTERN delay10_R ; W x 10ms delay;***** CONFIGURATION ; ext reset, no code protect, no watchdog, 4Mhz int clock __CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC;***** VARIABLE DEFINITIONS UDATA_SHRsGPIO res 1 ; shadow copy of GPIO;************************************************************************RESET CODE 0x000 ; effective reset vector movwf OSCCAL ; update OSCCAL with factory cal value pagesel start goto start ; jump to main code;***** Subroutine vectorsdelay10 ; delay W x 10ms pagesel delay10_R goto delay10_R ;***** MAIN PROGRAMMAIN CODE;***** Initialisationstart movlw b'111101' ; configure GP1 (only) as an output tris GPIO clrf sGPIO ; start with shadow GPIO zeroed;***** Main loopflash movf sGPIO,w ; get shadow copy of GPIO xorlw b'000010' ; flip bit corresponding to GP1 (bit 1) movwf GPIO ; write to GPIO movwf sGPIO ; and update shadow copy movlw .50 pagesel delay10 call delay10 ; delay 500ms -> 1Hz at 50% duty cycle pagesel flash goto flash ; repeat forever END erori.zip Link spre comentariu
Mikrosha Postat Ianuarie 5, 2012 Partajează Postat Ianuarie 5, 2012 Scuze că deviez, dar de ce compilezi separat cu mpasm-ul Proteusului? De ce nu bagi hex-ul generat de mplab direct în controllerul simulat? Link spre comentariu
Vizitator cosscat Postat Ianuarie 5, 2012 Partajează Postat Ianuarie 5, 2012 Salutare,Doresc sa ma folosesc de debugger-ul VSM-ului, pentru a vizualiza fiecare linie de cod executata.Nu deviezi, e buna intrebarea. Problema e ca as putea face asa ceva direct in placa, dar la 12f509 spre exemplu nu poti face debugg direct cu pickit2 iti trebuie un adaptor Link spre comentariu
Vizitator cosscat Postat Ianuarie 5, 2012 Partajează Postat Ianuarie 5, 2012 Ca sa rezum, ma intereseaza sa compilez cu VSM-ul programe alcatuite din mai multe fisiere, pentru a genera un fisier .hex final Link spre comentariu
francezu Postat Ianuarie 5, 2012 Partajează Postat Ianuarie 5, 2012 Doresc sa ma folosesc de debugger-ul VSM-ului, pentru a vizualiza fiecare linie de cod executata.E mai simplu daca folosesti fisierul .cof/.coff generat de MPLAB. Link spre comentariu
Vizitator cosscat Postat Ianuarie 6, 2012 Partajează Postat Ianuarie 6, 2012 Salutare Francezu,Cum anume sa folosesc acel fisier .cof? te rog da-mi mai multe detalii. Mersi,PS: Daca ai ceva cuptoare cu microunde defecte, ma intereseaza ca donatie.Stima Link spre comentariu
francezu Postat Ianuarie 6, 2012 Partajează Postat Ianuarie 6, 2012 In schema din Proteus dai dublu-click pe simbolul uC-ului si la Program File incarci fisierul .cof generat de MPLAB. La Processor Clock Frequency setezi frecventa la care lucreaza uC, si la Program Configuration Word scrii valoarea in hexa a cuvantului de configurare asa cum l-ai setat in cod sau in utilitarul din MPLAB. Apoi din meniul Debug poti executa codul linie cu linie. Aceeasi procedura merge si cu limbaje de nivel inalt daca stie compilatorul sa genereze fisiere .cofDespre cuptoare, imi pare rau, nu am. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum