TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: vicopic8 en 12 de Marzo de 2023, 02:20:07
-
Buenas amigos, soy nuevo en el foro y no se si esta pregunta va aquí (yo creo que si) así que pregunto lo siguiente:
Estoy usando MPLAB X IDE v6.05 para hacer un programa en c que encienda y apague un led en un pic 16F84A-04 el cual hice al observar varios códigos por aquí en el foro. La cuestión es que al compilar no me aparece ningún error o mensaje de advertencia pero al momento de cargar el archivo .hex generado tras la compilación en proteus 8 Release 8.13 SP0 y simular el funcionamiento me aparecen unas advertencias que hablan sobre la memoria EEPROM. No se si el programa en c este mal y al momento de compilar y generar el .hex algo se estropea ya que la simulación si funciona bien pero aparecen estos mensajes. He probado con otros programas diferentes hechos en ensamblador (usando MPLAB IDE v8.92 claro esta) y al simularlos, todo bien y sin mensajes de advertencia. ¿Sera que esta mal escrito el programa en c para el 16f84a?. Intente buscar un ejemplo en concreto para este pic pero no encontré, solo para pics como 16F84A-04.
-
Cliqueá Debug->Reset Persistent Model Data
-
Ya hice los pasos que me comentas pero al momento de simular siguen apareciendo esos mensajes. mmmmmm, estoy preocupado y quisiera gravar este programa en el pic pero temo que pueda fallar por esos mensajes de advertencia. ¿Alguna idea?
-
Ya hice los pasos que me comentas pero al momento de simular siguen apareciendo esos mensajes. mmmmmm, estoy preocupado y quisiera gravar este programa en el pic pero temo que pueda fallar por esos mensajes de advertencia. ¿Alguna idea?
Lo que parece (tal vez estoy equivocado) es que estás generando el hexadecimal con el mapa de la memoria EEPROM (la cual parece mal direccionada).
Debe existir una opción vía código o mediante configuraciones del MPLAB, que cuando compile, no genere dicho mapa.
-
He usado el Proteus 8.13 y el 8.15, en los dos vi errores en los breakpoints (los ignora) y en el manejo de la eeprom (no la recupera). No me extrañaría que éste sea otro mas.
Al final volví a la 8.12 que por lo menos no tiene esos errores.
Esta es la ejecución de tu programa compilado con XC8 2.32 en Proteus 8.12
- Tienes que ingresar para ver archivos adjuntos -
-
Son bastantes años que no trabajo con micros de 8 bits, pero tal vez esta imagen sea de ayuda (En tu caso estás usando el simulador en lugar del ICD3 que se indica en la imagen):
(https://microchipdeveloper.com/local--files/icd3:select-memory-to-program/EEPROMMemory-ICD.png)
Más info:
https://microchipdeveloper.com/icd3:prevent-eeprom-data-memory-program (https://microchipdeveloper.com/icd3:prevent-eeprom-data-memory-program)
-
Son bastantes años que no trabajo con micros de 8 bits, pero tal vez esta imagen sea de ayuda (En tu caso estás usando el simulador en lugar del ICD3 que se indica en la imagen):
(https://microchipdeveloper.com/local--files/icd3:select-memory-to-program/EEPROMMemory-ICD.png)
Más info:
https://microchipdeveloper.com/icd3:prevent-eeprom-data-memory-program (https://microchipdeveloper.com/icd3:prevent-eeprom-data-memory-program)
Ya hice el paso de desmarcar la casilla de EEPROM y al momento de simular en proteus siguen apareciendo los mensajes. Tal vez sea el proteus y solo me quedaría probar con una versión anterior del programa.
-
He usado el Proteus 8.13 y el 8.15, en los dos vi errores en los breakpoints (los ignora) y en el manejo de la eeprom (no la recupera). No me extrañaría que éste sea otro mas.
Al final volví a la 8.12 que por lo menos no tiene esos errores.
Esta es la ejecución de tu programa compilado con XC8 2.32 en Proteus 8.12
- Tienes que ingresar para ver archivos adjuntos -
Puede que sea el proteus. Me faltaría probar con una versión anterior y ser si siguen los mensajes.
-
He usado el Proteus 8.13 y el 8.15, en los dos vi errores en los breakpoints (los ignora) y en el manejo de la eeprom (no la recupera). No me extrañaría que éste sea otro mas.
Al final volví a la 8.12 que por lo menos no tiene esos errores.
Esta es la ejecución de tu programa compilado con XC8 2.32 en Proteus 8.12
- Tienes que ingresar para ver archivos adjuntos -
Puede que sea el proteus. Me faltaría probar con una versión anterior y ser si siguen los mensajes.
¿Seguro estás compilando tu proyecto para el 16F84A? Parece que estuvieras compilando tu proyecto para el 16F84 (Sin letra A)
-
He usado el Proteus 8.13 y el 8.15, en los dos vi errores en los breakpoints (los ignora) y en el manejo de la eeprom (no la recupera). No me extrañaría que éste sea otro mas.
Al final volví a la 8.12 que por lo menos no tiene esos errores.
Esta es la ejecución de tu programa compilado con XC8 2.32 en Proteus 8.12
- Tienes que ingresar para ver archivos adjuntos -
Puede que sea el proteus. Me faltaría probar con una versión anterior y ser si siguen los mensajes.
¿Seguro estás compilando tu proyecto para el 16F84A? Parece que estuvieras compilando tu proyecto para el 16F84 (Sin letra A)
Si, es para el pic 16f84a. Tal vez lo que este mal es el proteus al momento de simular el circuito. Aun no encuentro solución a esto así que me preguntaba, independientemente de los mensajes de advertencia, ¿Habría algún problema si así grabo este programa en un pic?. Aun así seguiré intentando solucionarlo
-
...
Si, es para el pic 16f84a. Tal vez lo que este mal es el proteus al momento de simular el circuito. Aun no encuentro solución a esto así que me preguntaba, independientemente de los mensajes de advertencia, ¿Habría algún problema si así grabo este programa en un pic?. Aun así seguiré intentando solucionarlo
Problema ninguno, en el peor de los casos no funciona como debe.
Para comprobar si es el Proteus, subí el .hex y lo pruebo con el 8.12
-
...
Si, es para el pic 16f84a. Tal vez lo que este mal es el proteus al momento de simular el circuito. Aun no encuentro solución a esto así que me preguntaba, independientemente de los mensajes de advertencia, ¿Habría algún problema si así grabo este programa en un pic?. Aun así seguiré intentando solucionarlo
Problema ninguno, en el peor de los casos no funciona como debe.
Para comprobar si es el Proteus, subí el .hex y lo pruebo con el 8.12
o entonce subo el archivo para ver la prueba. Disculpa la molestia compañero.
-
Da los mismos errores.
El problema con el Proteus es la 7ma línea del .HEX
:08400000FF3FFF3FFF3FFF3FC0
Lo que hace es escribir 0x3FFF en las 4 ID Locations. No es un error, pero por lo visto a Proteus no le gusta.
--> Si grabás el PIC con eso no pasa nada y si borrás esa línea del .HEX tampoco (y desaparece el error)
Tal vez en los parámetros de compilación se pueda deshabilitar escribir las ID Locations... No lo sé.
-
Da los mismos errores.
El problema con el Proteus es la 7ma línea del .HEX
:08400000FF3FFF3FFF3FFF3FC0
Lo que hace es escribir 0x3FFF en las 4 ID Locations. No es un error, pero por lo visto a Proteus no le gusta.
--> Si grabás el PIC con eso no pasa nada y si borrás esa línea del .HEX tampoco (y desaparece el error)
Tal vez en los parámetros de compilación se pueda deshabilitar escribir las ID Locations... No lo sé.
ok, buscando en los parámetros del proyecto encontré esto. ¿Serán ambos los que tenga que deshabilitar?
-
Pensé que desactivando esas dos opciones se podría arreglar lo de las advertencias en proteus, pero no. Seguiré tu sugerencia e ignorare dichas advertencias cuando simule en proteus por que al compilar no me aparece nada. Solo espero que mas adelante cuando practique con un pic diferente o haga proyectos mas completos, esto no sea un impedimento ya que quiero aprender el c de mplab x (o podría utilizar en su defecto el ccs c compiler que de hecho lo baje, hice una prueba, cargue el .hex en proteus y si va bien la simulación sin errores. Hice esto pensando que tal vez el proteus ejecutaba mal los .hex generados a partir de archivos .c).
Muchas gracias a ti y a todos los compañeros que me dedicaron un poco de su tiempo en responder a mis dudas. Creo que daré por cerrado este tema amigos!!!!!! :)