TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: bluesboy en 08 de Marzo de 2019, 12:37:35
-
Buenos días
No logro encontrar el error. Tengo un equipo que le permite al usuario grabar un dato entre 0000 y 9999, visualizados en un display 7 seg. Lo graba en la eeprom, arrancado en la dirección 0000.
La idea es que el usuario graba el dato, desconecta el equipo, vuelve en dos semanas, elige el dato grabado y comienza un proceso de cuenta muy simple que se detiene cuando la cuenta coincide con el dato grabado.
Peeero... Grabo el dato, queda todo perfecto, Desconecto, vuelvo a conectar al rato y de los 4 dígitos a grabar, uno o dos me quedan en FF. Pongamos que grabo 0011, el ¨11¨ queda perfecto, pero alguno de los 00 se pasan a FF. Entonces cuando voy a la tabla para mostrar el dato en el display...FF no está contemplado...el micro salta a cualquier lado y se cuelga.
No tengo idea porque me hace esto, algo se me está escapando.
Cualquier sugerencia es bienvenida.
Muchas gracias.
-
Sin codigo es imposible ayudar. Por favor coloca tu código para analizarlo.
elreypic.
-
Seguramente problemas de fuentes...
Filtra mejor... Activa el Brown Out (BOR)
De codigo puede ser tambien, pero si son aleatorios entonces donde ocurre pensaria mas lo anterior.
-
Muchas gracias por sus respuestas.
Yo también estoy desconfiando de la parte electrónica. Voy a revisar y lo del brown out tambien.
Lo del código, no lo cuelgo, pero no por hacerme el misterioso, son como 1500 y pico de líneas de assembler...Gracias igual.
Muchas gracias.
-
Pero eso son dos bytes, necesitas dos posiciones de eeprom.
Tienes que coger tu número que estará en una variable de 16 bits y descomponerlo en dos variables de 8 bits. Luego grabas cada una de las dos variables en dos posiciones eeprom.
Luego para leerlo pues todo a la inversa. Lees las dos posiciones y usas make16(); para recuperar tu número de 4’cifras.
-
Buenas, efectivamente, había que setear el Brown out reset. Problema resuelto.
MUCHAS GRACIAS.