Sari la conținut
ELFORUM - Forumul electronistilor

Modificare fisier asm


Postări Recomandate

Incerc sa modific un fisier asm, insa, din pacate experienta mea cu asembler-ul este inexistenta, asa ca v-as ruga, daca poate cineva sa-mi spuna ce face un uC (este vorba despre PIC16F628) la urmatoarea secventa de cod: movlw 0xA0 ; movwf fstep_0 ; movlw 0x86 ; movwf fstep_1 ; movlw 0x01 ; movwf fstep_2 ;Explicatii despre fiecare instructiune am mai gasit, insa nu m-am lamurit deloc. Asta este motivul pentru care intreb ce "efect" produce intrega secventa (aduna/scade ceva, muta o informatie de la o adresa la alta, etc.) Daca se poate da o "traducere" pe intelesul meu e foate bine, daca nu macar sa-mi spuneti ca sint departe de adevar si ca problema nu se trateaza asa, ca sa stiu sa-mi vad de treaba... :)

Link spre comentariu
  • Răspunsuri 19
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Am facut modificarile, c-au fost mai multe si, pana acum, e OK. Sursa s-a compilat, ce-i drept cu niste WARNING-uri, dar s-a compilat. In vreo doua locuri precis am facut ceva indoielnic, asa ca mor de curiozitate sa vad ce-a iesit . Cand ajung acasa fac o simulare sa vedem ce se intampla si revin cu rezultatele...

Link spre comentariu

Am umplut-o de sange... Am facut cateva modificari, si la un moment dat pe langa pasii de 1Hz, 1 Khz, 100KHz si 1 Mhz, am reusit sa ontin si pasul de 10 Mhz.Apoi tot "lucrand" la cod l-am stricat si acum nu mai obtin decat 1Hz si 100 de Hz insa nu mai cicleaza la apasarea butonului. Dupa 100 Hz nu mai incrementeaza pasul....Codul, acum arata cam asa:PB_look ; btfsc PORTA,pb_2 ; is pb_2 pressed goto PB_UP call wait_8ms ; de-bounce btfsc PORTA,pb_2 ; check pb_2 again goto PB_UP ; no - go check if pb_1 is pressed btfss PB_FLAGS,MHZ10 ; is pb_flags,mhz10 set goto pb_mhz ; no - go check pb_flags,mhz goto pb_clr ; yes - go set to 1Hzpb_mhz btfss PB_FLAGS,MHZ ; is pb_flags,mhz set goto pb_khz100 ; no - go check pb_flags,khz100 bsf PB_FLAGS,MHZ10 ; yes - set 10MHz flag, update display and exit bcf PB_FLAGS,MHZ ; clear 1MHz flag movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw '0' ; digit 8 call data2LCD ; movlw 'M' ; digit 9 call data2LCD ; movlw 'H' ; digit 10 call data2LCD ; movlw 'z' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_khz100 btfss PB_FLAGS,KHZ100 ; is pb_flags,khz100 set goto pb_khz10 ; no - go check pb_flags,khz10 bsf PB_FLAGS,MHZ ; yes - set 1MHz flag, update display and exit bcf PB_FLAGS,KHZ100 ; clear 100kHz flag movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw 'M' ; digit 8 call data2LCD ; movlw 'H' ; digit 9 call data2LCD ; movlw 'z' ; digit 10 call data2LCD ; movlw ' ' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_khz10 btfss PB_FLAGS,KHZ10 ; is pb_flags,khz10 set goto pb_khz ; no - go check pb_flags,khz bsf PB_FLAGS,KHZ100 ; yes - set 100KHz flag, update display and exit bcf PB_FLAGS,KHZ10 ; clear 10kHz flag movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw '0' ; digit 8 call data2LCD ; movlw 'k' ; digit 9 call data2LCD ; movlw 'H' ; digit 10 call data2LCD ; movlw 'z' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_khz btfss PB_FLAGS,KHZ ; is pb_flags,khz set goto pb_hz100 ; no - go check pb_flags 100Hz flag bsf PB_FLAGS,KHZ10 ; yes - set pb_flags,khz100, update display and exit bcf PB_FLAGS,KHZ ; clear kHz flag movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw '0' ; digit 8 call data2LCD ; movlw '0' ; digit 9 call data2LCD ; movlw 'k' ; digit 10 call data2LCD ; movlw 'H' ; digit 11 call data2LCD ; movlw 'z' ; digit 12 call data2LCD ; goto PB_exitpb_1khz bsf PB_FLAGS,KHZ ; set pb_flags,khz, update display and exit movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw 'k' ; digit 8 call data2LCD ; movlw 'H' ; digit 9 call data2LCD ; movlw 'z' ; digit 10 call data2LCD ; movlw ' ' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_hz100 bsf PB_FLAGS,HZ100 ; set pb_flags,hz100, update display and exit movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw '0' ; digit 8 call data2LCD ; movlw '0' ; digit 9 call data2LCD ; movlw 'H' ; digit 10 call data2LCD ; movlw 'z' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_hz10 bsf PB_FLAGS,HZ10 ; set pb_flags,khz, update display and exit movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw '0' ; digit 8 call data2LCD ; movlw 'H' ; digit 9 call data2LCD ; movlw 'z' ; digit 10 call data2LCD ; movlw ' ' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; goto PB_exitpb_clr bcf PB_FLAGS,MHZ10 ; yes - clear pb_flags,mhz, update display and exit movlw 0xC7 ; Point LCD at digit 7 of second line call cmnd2LCD ; movlw 'H' ; digit 8 call data2LCD ; movlw 'z' ; digit 9 call data2LCD ; movlw ' ' ; digit 10 call data2LCD ; movlw ' ' ; digit 11 call data2LCD ; movlw ' ' ; digit 12 call data2LCD ; PB_exit btfss PORTA,pb_2 goto PB_exit ; return ; PB_UP btfss PORTA,pb_1 ; Is bandswitch pushbutton pressed? call change_band ; yes - change band and return to main returnCred ca am scris niste tampenii cat casa de mari, dar mi s-a intunecat vederea si nu mai stiu ce sa-i fac. NU mai stiu nici macar sa revin la varianta cu 5 pasi, care tot era un plus...Imi mai dati vreo sugestie ? Ce sa-i mai fac sa-l descurc ?

Link spre comentariu

aaaa, ba da, pai altel nici nu se punea problema. Am modificat multe la codul initial, asa cum mi-ati sugerat si merge perfect. Partea de cod pe care am postat-o mai sus e cea la carea m-am incurcat, nu e tot codul. Probabil ca maine am s-o iau de la capat, pe bajbaite si vad ce mai iese. Pana acum, cu incercari, oarecum in orb, am reusit sa mai adaug incrementarea in pas de 10 mhz, fara sa-mi dau seama exact cum, dupa care am schimbat ceva si s-a pierdut totul :-D

Link spre comentariu

Acum asa fac...Din pacate n-am facut insa niciun progres real. Am modificat doar pasul de 1kHz in pas de 10Hz, care e mai util, un pic, petru ce vreau eu. De adaugat pasi, insa, nicio sansa...Oricum fac totul pe ghicite, ca la 6 din 49, asa ca e destul de greu de nimerit varianta corecta in timp scurt, sau vreodata... Inca mai sper sa se bage cineva cu experienta, ca am dat anunt si la ElectroJob

Link spre comentariu

Sorry, eram (sunt) off-topic, dar ma refeream la softuri care se ocupa cu evidenta modificarilor diverselor fisiere (habar n-am cum sa traduc/adaptez mai bine versioning-ul asta).

CVS/SVN/git sunt astfel de softuri.

Pentru ca pot fi folosite la orice tip de fisiere/documente (desi nu stiu cat de eficiente sunt in cazul fisierelor binare), nu trebuie sa fii programator sa le folosesti.

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări