Vizitator kosmin22 Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 Salut, va rog sa imi spuneti daca doriti cum trebuie sa procedez daca vreau sa fac un call sau un goto corect daca acea subrutina apelata are mai multe subrutine incorporate si se afla in alta pagina.(MPLAB) EX: org 0 main: call test.buton fa ceva util pe baza asta . . . goto main org 0x800 test.buton . . . call functie intermediara1 return functie intermediara1 . . . call functie intermediara2 return funtctie intermediara2 return pina acum am incercat variante: org 0 main: pagesel test.buton call test.buton fa ceva util pe baza asta . . . goto main org 0x800 test.buton . . . call functie intermediara1 return functie intermediara1 . . . call functie intermediara2 return funtctie intermediara2 return a doua: org 0 main: setare manuala PCLATH call test.buton fa ceva util pe baza asta . . . goto main org 0x800 test.buton . . . call functie intermediara1 return functie intermediara1 . . . call functie intermediara2 return funtctie intermediara2 return a treia: org 0 main: setare manuala PCLATH sau pagesel goto test.buton "inapoi" fa ceva util pe baza asta . . . goto main org 0x800 test.buton . . . call functie intermediara1 setare pclath pentru pagina 0 goto "inapoi" in loc de return functie intermediara1 . . . call functie intermediara2 return funtctie intermediara2 return Dupa parerea mea am incercat toate variantele, ce imi scapa? sa fie de la nivelul de stiva ocupat care incepand de la adresa de memorie 0x800 nu se incarca corect(pclath ia valori aiurea)? programul are peste 2 k iar aici nivelul in stiva de call este 4 deci nu depasesc acel numar de 8. Am incercat sa explic cum am putut problema mea, nu sunt mare cunoscator. simularea a fost facuta in proteus, cat despre MPLAB a dar BUILD SUCCEEDED. in proteus mii de erori. pana ce programul meu sa depaseasca 2k(pe pagina 0) testarea butoanelor functiona corect, dupa ce a depasit limita de o pagina, am trecut testarea butoanelor in pagina 1. *a dat build succeeded Link spre comentariu
10vid Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 (editat) Instructiunile RETURN si RETFIE lasa nemodificat PCLATH dupa executie (in cazul acesta, dupa intoarcerea la pagina apelanta), astfel ca va trebui s-o faci manual: org 0hmain bsf PCLATH,3 ;modific pentru pagina 1 call test_buton ;rutina in pagina 1 bcf PCLATH,3 ;modific pentru pagina 0 goto ...... ;alte operatii in pagina 0 call ...... goto main Editat Iunie 3, 2014 de 10vid 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