vasile doru Postat Octombrie 1, 2007 Partajează Postat Octombrie 1, 2007 La compilarea (in JAL) unui program pt PIC 16F877 imi apare eroare:jal 00.04-50 (djgpp)> error: 96 file registers required, only 95 availableDaca sterg o variabila eroarea dispare. Se pot definii decat 95 de variabile? Link spre comentariu
Vizitator Xenion Postat Octombrie 1, 2007 Partajează Postat Octombrie 1, 2007 Numarul de variabile depinde de memoria (RAM) disponibila si de dimensiunea acestora, nu este un numar fix.Tu ai umplut memoria cu aceste 95 variabile. Pentru a face loc pentru mai multe ai putea sa incerci sa folosesti tipuri de data mai mici (acolo unde este posibil). Link spre comentariu
vasile doru Postat Octombrie 1, 2007 Autor Partajează Postat Octombrie 1, 2007 Ce nu inteleg, de unde acest 95, memoria RAM la un PIC16F877 este de 368bytes. Link spre comentariu
cirip Postat Octombrie 1, 2007 Partajează Postat Octombrie 1, 2007 Corect, dar in functie de tipul declarat al variabilei, memorarea se poate face pe 1 sau mai multi octeti. De aici poate sa apara diferenta. Adica ceea ce limbajul de nivel inalt (JAL) considera ca o variabila, in realitate poate sa fie memorat pe mai multi octeti.Cirip Link spre comentariu
yo5oqa Postat Octombrie 2, 2007 Partajează Postat Octombrie 2, 2007 Si in plus compilatorul isi rezerva o parte din RAM pentru diferite operatii. Link spre comentariu
vasile doru Postat Octombrie 3, 2007 Autor Partajează Postat Octombrie 3, 2007 Toate variabilele definite sunt pe 1 octet. Link spre comentariu
d2134 Postat Octombrie 3, 2007 Partajează Postat Octombrie 3, 2007 S-ar putea sa fie o limitare a compilatorului. Vezi in documentatia compilatorului. Spune si colectivului ce versiune de JAL ai folosit. Link spre comentariu
cirip Postat Octombrie 3, 2007 Partajează Postat Octombrie 3, 2007 Toate variabilele definite sunt pe 1 octet.Atunci uita-te in fisierul listing sau map sau ce ai acolo, in care se vede tabela de alocare a variabilelor si vezi ce si cate a bagat el in plus. Link spre comentariu
vasile doru Postat Octombrie 4, 2007 Autor Partajează Postat Octombrie 4, 2007 version JAL: 0.3.1.17Am gasit de unde acel 95. Variabilele sunt alocate doar in bank 0, unde sunt 95 de registri liberi. Pt a mari nr de variabile trebuiesc definite si in alte bank-uri, dar acum am alta problema: de ex. am doua variabile in bank-uri diferite, cum fac suma acestora? Ex. de definire variabila in bank 1: var byte a1 at 0xa0, am facut o simulare si functioneaza corect.Exista vreo optiune in JAL pt alocarea variabilelor si in alte bank-uri, la compilare, cand se umple bank 0, fara sa le definesc eu in program? 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