Hola , estoy intentando guardar valores en la eeprom de un pic 16F628.
Son tres datos , todos se graban y leen con exactamente la misma rutina.
Pero al cargar los valores luego de una desconección de la fuente , sólo recupero 2.
El tercero siempre tiene un valor que desconozco pero mas alto que el guardado.
He buscado por todo el foro , pero sólo encontré una indicación de no usar CALL para ir a la rutina de grabación.
Por lo cual uso GOTO para ir a la rutina y nada , le he cambiado el nombre al registro que contiene el valor y nada.
Las rutinas que uso son las siguientes pero no está en ellas el error , de todas formas lo subo.
Si alguien a tenido problemas parecidos con éste pic le agradezco me indique como lo solucionó.
graba movf REGISTRO,0 ; grabo en EEPROM valor de dimmer , cargo el dato en W porque está en el banco 0 y luego paso al banco1.
bsf status,0x5
movwf eedata
movlw 0x00
movwf eeadr
bcf intcon,0x7
bsf eecon1,0x2
movlw 0x55
movwf eecon2
movlw 0xAA
movwf eecon2
bsf eecon1,0x1
btfsc eecon1,0x1
goto $-1
bcf status,0x5
call disparo
goto ciclo1
Como ven espero el flag para darle tiempo a la escritura.
leer bsf status,0x5
movlw 0x00
movwf eeadr
bsf eecon1,0x0
movf eedata,0
bcf status,0x5
movwf REGISTRO2
La verdad que le he dado muchas vueltas y no encuentro el motivo para que no grabe o lea los tres
registros por igual.