Autor Tema: problemas con eeprom en 16f870  (Leído 1570 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MAXI

  • PIC10
  • *
  • Mensajes: 34
problemas con eeprom en 16f870
« en: 27 de Noviembre de 2009, 21:55:27 »
Hola muchachos:
tengo problemas con la lectura y escritura de la eeprom :shock:
el codigo que utilizo es el sig:
;===========================================================================
;            ESCRIBE FALLA
;===========================================================================
escrfalla                     ;graba con1 y 2 en eeprom
               movwf     DDATO
               movlw     0x00
               call     ESCRIBE

               return

;===========================================================================
;            COMPRUEBA FALLAS EN EEPROM
;===========================================================================
leefalla       movlw     0x00       ;lee si hubo fallas
                 call      LeerEE
                 return   

;===========================================================================
;            LECTURA DE EEPROM
;===========================================================================
LeerEE                          
      
               bsf STATUS,RP1       ;; LEE E2   
               bcf STATUS,RP0

       
             movwf EEADR         ;DIR DE MEMORIA

           
               bsf STATUS,RP0
               bcf  EECON1,EEPGD 
               bsf  EECON1,RD
            
               nop
               nop
               bcf  STATUS,RP0

               movf   EEDATA,W
               bcf    STATUS,RP1       
             movwf  DDATO       ;DATO
               return
;===========================================================================
;            ESCRITURA DE EEPROM
;===========================================================================
ESCRIBE
              
               bcf STATUS,RP0
               bsf STATUS,RP1   ;;
          
               movwf EEADR
               movf  DDATO,W
               ;
             movwf EEDATA             
               bsf STATUS,RP0
               bcf EECON1,EEPGD
               bsf EECON1,WREN 
               movlw 0x55
               movwf EECON2             
               movlw 0xAA
                 movwf EECON2             
               bsf EECON1,WR           
Etiqueta2      btfsc EECON1,1
                       
               goto Etiqueta2
      


           
               bcf EECON1,WREN             
         
               bcf STATUS,RP1
               bcf STATUS,RP0
               return
                        
Agradeceria un ayuda, porque ya me supero.... :5]
Se que el tema de la eeprom esta tratado en varios hilos, pero no vi del pic16f870.
Si alguno ya vio alguin hilo igual a este, agradeceria me lo posteen.
saludos

Desconectado MAXI

  • PIC10
  • *
  • Mensajes: 34
Re: problemas con eeprom en 16f870
« Respuesta #1 en: 28 de Noviembre de 2009, 12:10:09 »
Gente, estoy como los locos, me pregunto y me contesto solo. jajaja. Ya encontre el problema, estaba en el codigo estaba pisando la dirección de escritura con otro dato.  :mrgreen:

Pido disculpas, por suerte ya lo encontre.
Saludos

Desconectado krostby

  • PIC10
  • *
  • Mensajes: 33
Re: problemas con eeprom en 16f870
« Respuesta #2 en: 24 de Junio de 2010, 00:33:05 »
Hola Maxi, tengo entendido que ya solucionaste tu problema de escritura en la memory data. Podrás ayudarme con el mío ??? Tengo la rutina de escritura para el 16f870, sin embargo se queda pegado en el loop_1.  Mi rutira es la siguiente:

write_data   bsf           STATUS,RP1
      bsf           STATUS, RP0    ;cambiamos a banco1
      movf           address,W
      movwf   EEADR
      movf           data,W
      movwf   EEDATA       

      bcf   EECON1,EEPGD   ;habilita acceso a memoria de DATOS
      bsf   EECON1, WREN   ;permite ciclo de escritura
      movlw   0x55       ;inicio de secuencia de seguridad
      movwf   EECON2
      movlw   0xAA
      movwf   EECON2       ;fin secuencia de seguridad
      bsf       EECON1,WR    ;Inicia ciclo de escritura

loop_1   btfsc      EECON1,WR   ;espera por finalizar
      goto           loop_1      ;la escritura

      bcf          STATUS,RP0    ;regresamos al banco0
      bcf          EECON1,WREN   ;Inhibe escritura en la EEPROM
      return

de antemano gracias por tu ayuda

krostby

Desconectado MAXI

  • PIC10
  • *
  • Mensajes: 34
Re: problemas con eeprom en 16f870
« Respuesta #3 en: 22 de Octubre de 2010, 11:29:30 »
krostby:
Tengo que pedirte ,mil disculpas por no responderte, hace un monton de tiempo que no entro al foro, por cuestiones laborales. Pudiste solucionar tu problema?. En la linea :

loop_1   btfsc      EECON1,WR   ;espera por finalizar
      goto           loop_1      ;la escritura

utiliza un 1 en vez de WR y prueba.

Mil disculpas por no contestar antes


 

anything