Autor Tema: Consulta de grabado de eeprom pic16f873a  (Leído 1222 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado bluesboy

  • PIC12
  • **
  • Mensajes: 89
Consulta de grabado de eeprom pic16f873a
« en: 25 de Marzo de 2016, 10:54:49 »
Buenas gente, tengo un programita que, en una de sus opciones graba un dato en la eeprom, desde la posición 00 a la 04.

Uso el código de la hoja de datos, y cuando lo simulo en el pic simulator, va perfecto.

En la realidad no.

Pregunto:
¿hay algún error común para que pase esto? algún bit de configuración, algún registro que se me pase. insisto, en el simulador va de 10.
Tengo otra rutina que lee esas posiciones, las muestra y funciona bien, de hecho si grabo valores en la memoria usando el winpic, cuando grabo, después en la realidad los lee perfecto.

Les pego la data de la rutina que escribe, lo mas pequeño que pude. Por si alguno tiene tiempo y ganas

Hay registros llamado unidad, decena, centena, vuelta1, vuelta2  que es el valor a grabar

 MOVF   UNIDAD,0    ;MUEVE UNIDAD A ACUMULADOR
       BSF   STATUS,RP1 ;
       BCF   STATUS,RP0 ; Bank 2
       MOVWF   EEDATA ; PONE EL DATO A GRABAR
       MOVLW   0X00
       MOVWF   EEADR   ;SELECCIONA LA POSICIÓN A GRABAR.
       CALL   ESCRIBE   ;GRABO UNIDAD
       MOVF    DECENA,0    ;MUEVE UNIDAD A ACUMULADOR
       BSF   STATUS,RP1 ;
       BCF   STATUS,RP0 ; Bank 2
       MOVWF   EEDATA ; PONE EL DATO A GRABAR
       MOVLW   0X01
       MOVWF   EEADR   ;SELECCIONA LA POSICIÓN A GRABAR.
       CALL   ESCRIBE   ;GRABO UNIDAD
       MOVF    CENTENA,0    ;MUEVE UNIDAD A ACUMULADOR
       BSF   STATUS,RP1 ;
       BCF   STATUS,RP0 ; Bank 2
       MOVWF   EEDATA ; PONE EL DATO A GRABAR
       MOVLW   0X02
       MOVWF   EEADR   ;SELECCIONA LA POSICIÓN A GRABAR.
       CALL   ESCRIBE   ;GRABO UNIDAD
       MOVF    VUELTA1,0    ;MUEVE UNIDAD A ACUMULADOR
       BSF   STATUS,RP1 ;
       BCF   STATUS,RP0 ; Bank 2
       MOVWF   EEDATA ; PONE EL DATO A GRABAR
       MOVLW   0X03
       MOVWF   EEADR   ;SELECCIONA LA POSICIÓN A GRABAR.
       CALL   ESCRIBE   ;GRABO UNIDAD
       MOVF    VUELTA2,0    ;MUEVE UNIDAD A ACUMULADOR
       BSF   STATUS,RP1 ;
       BCF   STATUS,RP0 ; Bank 2
       MOVWF   EEDATA ; PONE EL DATO A GRABAR
       MOVLW   0X04
       MOVWF   EEADR   ;SELECCIONA LA POSICIÓN A GRABAR.
       CALL   ESCRIBE   ;GRABO UNIDAD
       RETURN      


;RUTINA ESCRIBE EEPROM
ESCRIBE   
   BSF STATUS,6 ;
   BSF STATUS,5
   BTFSC EECON1,1 ;Wait for write
   GOTO $-1 ;to complete
   BCF EECON1,7 ;Point to DATA ;memory
   BSF EECON1,2 ;Enable writes
   BCF INTCON,GIE ;Disable INTs.
   MOVLW 0X55 ;
   MOVWF EECON2 ;Write 55h
   MOVLW 0XAA ;
   MOVWF EECON2 ;Write AAh
   BSF EECON1,1 ;Set WR bit to ;begin write
   BSF INTCON,GIE ;Enable INTs.
   BCF EECON1,2 ;Disable writes
   BCF STATUS,5
   BCF STATUS,6   ;BANCO 0
   RETURN


Desde ya muchas gracias por su tiempo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Consulta de grabado de eeprom pic16f873a
« Respuesta #1 en: 25 de Marzo de 2016, 11:12:11 »
No se por que no usas los nombres de los bits como WR,WREN,GIE, ni usas W/F.

Pero respecto al codigo parece estar bien.

Desconectado bluesboy

  • PIC12
  • **
  • Mensajes: 89
Re:Consulta de grabado de eeprom pic16f873a
« Respuesta #2 en: 25 de Marzo de 2016, 11:21:33 »
Los use en el código original, ero por las dudas que haya alguna problema al compilar (no es la primera vez que me pasa que se compila bien pero no funca por un nombre) puse los nros que sé que no fallan

Gracias por tomarte el tiempo.

Saludos

Desconectado bluesboy

  • PIC12
  • **
  • Mensajes: 89
Re:Consulta de grabado de eeprom pic16f873a
« Respuesta #3 en: 28 de Marzo de 2016, 15:33:01 »
No grababa porque lo que le faltaba  a esta mierd4 era

BSF    EECON1, WR

No iba a escribir nunca.
Gracias a quien se haya tomado el tiempo de leer y lo dejo por si alguno le sirve.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Consulta de grabado de eeprom pic16f873a
« Respuesta #4 en: 28 de Marzo de 2016, 15:40:37 »
Crei que estaba:

 BSF EECON1,2 ;Enable writes

Tambien si no mal recuerdo el 2 era el WR cuando lo vi.


 

anything