TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: championz en 21 de Abril de 2006, 02:39:13
-
como va! bueno les uento que tengo un problemita con el 16f88, no se porque pero escribi el programa lo fui modificando y de repente cuando compilo me sale un error que dice "OUT OF ROM" y algo mas... entonces elimino una solo instruccion, un LCD_PUTC y compila perfectamente, y me informa que la memoria utilizada (ROM) es de 80%... entonces pienso, como puede ser que un simple LCD_PUTC ocupe el 20% restante de memoria????
otra cosa curiosa es que cuando genero el HEX y lo abro con winpic, recorro la memoria rom y encuentro en el medio del hex muchos espacios vacios.... MUCHOs... estos espacios son para las variables???
gracias!
-
Adjunta aquí tu programa e intentamos ayudarte.
-
Hola, lo que puede ser que te este pasando es que el CCS por defecto las llamadas a funciones las hace Inline, es decir, donde haces una llamada auna funcion en vez de hacer un call a la funcion, lo que realmente hace es poner el codigo entero de la función, con lo cual si llamas a la función 10 veces tendras la misma funcion duplicada 10 veces. Para evitar esto, las funciones que no quieres que sean Inline, ponle delante la directiva del preprocesador #separate.
Por ejemplo:
#separate
void miFuncion(){
//mi codigo
}
Un Saludo.
Un saludo.