TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Diodin en 15 de Noviembre de 2010, 15:43:52
-
Hola. Se me ha presentado un problema que necesito resolver. En un PIC16F877A, con una RAM de 368 bytes, no consigo declarar un array de 128 bytes. En concreto,
int8 variable[128]
da error "Not enough RAM for all variables", sin embargo, no es cierto que no haya RAM disponible. Queda RAM de sobra para asignársela al array.
¿Cómo puedo solucionar esto?
No me vale partir el arrray en dos de la mitad de longitud, aunque haciendo eso sí que me permite las definiciones, es decir, haciendo
int8 variable_L[64], variable_H[64]
sí permite las definiciones.
Gracias.
-
Hola, ¿has probado a declararla la primera de todas, así te la asigna toda en el mismo banco?
-
Sí, lo he probado y nones.
Un saludo
-
Hola, en ese PIC sí hay 128 bytes de RAM continua en un sólo banco, pero C necesita algunos bytes de scratch ram para hacer operaciones, por lo que usa algunos bytes del mismo banco. Por eso no puedes declarar 128, prueba declarando 110 o algo así.
Si de plano necesitas 128 bytes continuos, mejor usa un PIC18.