TODOPIC
Microcontroladores PIC => - Niple - => Mensaje iniciado por: xenam en 16 de Noviembre de 2020, 08:19:51
-
Buenas,
Acabo de empezar con el mundo de los Pic. El antiguo compañero dejo un programa realizado el cual trabaja casi perfectamente excepto que al iniciar el programa se supone que queremos que arranque con los parametros que ajusta el usuario y los cuales deberian de guardarse en la EEPROM.
El tema es que cuando el usuario ajusta unos valores de funcionamiento,el programa los ejecuta bien pero cuando apagamos el equipo lo ideal seria que arrancase con los mismos parametros que tenia justo antes de apagar el equipo.
He estado siguiendo el programa y parece ser que si deberia de guardar los parametros pero en el arranque tiene unos comandos que asigna unos valores predeterminados y luego lee los valores de la EEPROM .
Adjunto programa el cual es bastante extenso.
Os agradeceria vuestra ayuda.
-
Voy a revisar lo que has adjuntado y comento.
F.
-
A ver, una vez revisado el programa que has adjuntado, creo que es normal que pase lo que indicas.
Pues aunque guardes ciertos valores en la EEPROM, juste de la activación de los timers tienes situado un bloque de la subrutina de inicializar la EEPROM. Dentro de esta, asignas unos valores iniciales y después es cuando lees los valores de la EEPROM y seguidamente lo guardas en la EEPROM con lo cual estas machacando los valores que hubieras guardado.
Debes de establecer alguna comprobación para ver si ya hay valores inicializados o no y según eso leer los valores guardados.
F.
P.D.: Un consejo: Deberías de utilizar etiquetas para ir a distintos lugares del programa y así poder ser mas fácil de seguir y entender.
-
Hola Fer_TACA,
Primero agradecerte tu ayuda.
Te comento, ya me habia dado cuenta que al inicio del programa se cargan ciertos parametros y luego lee los del eeprom para luego acabar guardandolos de nuevo.
Por esa razon,intente solucionar el problema eliminando los comandos que asignan los valores a los registros. El problema es que tras varios intentos y cambios pues que cada vez que cargo el programa al circuito el lcd se enciende pero no aparece ningun mensaje.
Es por eso por lo que he escrito aqui en busca de consejos.
Por otro lado,podrias explicarme o darme un ejemplo sobre como proceder para utilizar etiquetas en el programa.
Gracias de antemano
-
Por una parte intente que los valores de la eeprom asignados bastasen para un arranque con unos parámetros configurados,los cuales en teoria deberian de machacarse al cambiar esos parámetros una vez que estuviese utilizando el programa en modo usuario.
Pero nada,me sale el lcd vacio,ni para adelante ni para atras.
Como compruebo si hay algunos valores inicializadosn o no?
-
Mira te cuento como yo lo plantearía, a falta de comprobación evidentemente:
1º Después de los bloques de inicializar puertos, timers etc. Leería los valores de la EEPROM.
2º En una posición de la memoria tendría guardado, en un registro creado previamente un valor. Por ejemplo registro "estado_EEPROM"
3º Comprobaría el valor de la posición de memoria del punto 2º. Por ejemplo si su valor fuese 0.
4º En caso afirmativo, seguiría con el programa tal cual tienes planteado, asignado unos valores iniciales y guardándolos en la EEPROM. Evidentemente, además de tus valores pondría =1 el valor del registro creado en el punto 2º.
5º Si el resultado de la comprobación del punto 3, ya no fuese 0, significaría que ya previamente se habrían inicializado unos valores iniciales y por tanto desde este punto del valor de "estado_EEPROM" pasaría directamente al punto 5º. Por tanto no asignaría ningún valor inicial y directamente pasaría al resto del programa.
6º Seguiría con todo el proceso de tu programa.
Voy a ver si puedo ponerte de forma resumida un ejemplo en un fichero adjunto. En el también te pondría como seria el uso de las etiquetas.
F.
-
Te adjunto las capturas de lo propuesto.
-
Te adjunto las capturas de lo propuesto.
Hola,
Recién comprobado los cambios y el programa ha quedado tal y como lo queríamos!!!
Muchísimas gracias por tu ayuda, ahora empezare a pulir otros pequeños problemas del funcionamiento.
Pero el mayor problema ya esta solucionado.
Lo de las etiquetas no tiene comparación respecto al lio de líneas que tenia antes el programa, de todo se aprende.
Muy acertada tu recomendación.
Gracias y espero seguir en contacto, una vez que me he metido en este mundillo.
De momento queremos solucionar los problemas de los programas realizados en niple. Después empezare a realizar los programas en C( CCs C), después de barajar todas las opciones( Mplab,etc..)
-
Me alegro que te haya podido servir de ayuda.
Si tienes mas dudas ya sabes donde estamos.
F.