Autor Tema: Migrar del 16F84 al 16F628, no logro escribir en la eeprom...  (Leído 3454 veces)

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

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Migrar del 16F84 al 16F628, no logro escribir en la eeprom...
« en: 13 de Mayo de 2007, 05:24:42 »
Estoy tratando de pasar un codigo del 16f84 al al 16f628, ya me funciona todo menos la funcion de escritura del me graba cualqiercosa menos el digito que aparece en el display.

en el 16f84 funciona bien, aqui pongo la rutina de guardado que utilice en el 16f84, aver si alguien me ayuda a pasarlo al 16f628.

Citar
GUARDAR1
   MOVF MINUTOS,W      ; put digit registers into EEprom
   MOVWF EEDATA               
   MOVLW D'11'         ; EEPROM location 11 + 
   ADDWF OFFSET,W      ; offset from start
   MOVWF EEADR               
   CALL ESCRIBIR
    
   MOVF MINUTOS10,W               
   MOVWF EEDATA               
   MOVLW D'10'         ; EEPROM location 10 + 
   ADDWF OFFSET,W      ; offset from start
   MOVWF EEADR               
   CALL ESCRIBIR
   
   MOVF HORAS,W                 
   MOVWF EEDATA               
   MOVLW D'09'         ; EEPROM location 9 + 
   ADDWF OFFSET,W      ; offset from start
   MOVWF EEADR               
   CALL ESCRIBIR
   RETURN

Estos son los datos que quiero guardar en la eeprom, en el 16f84 los graba.
Agradesco cualquier idea...
Un saludo...


:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Migrar del 16F84 al 16F628, no logro escribir en la eeprom...
« Respuesta #1 en: 13 de Mayo de 2007, 09:56:35 »
amigo antes de migrar un codigo de un pic a otro sugiero que primero revises el datasheet de ambos pics e identifiques sus diferencias, en tu caso los regitros de la EEPROM del pic16F84A estan todos en el banco 0 pero.... en el pic16F628 ..... revisa la pagina 91 del respectivo datasheet  :mrgreen: te llevaras una sorpresita  :-)
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: Migrar del 16F84 al 16F628, no logro escribir en la eeprom...
« Respuesta #2 en: 13 de Mayo de 2007, 12:30:32 »
Gracias Microcadaver, Estos fueron los cambios que tube que hacer

Código: [Seleccionar]
GUARDAR1
MOVF MINUTOS,W
BSF STATUS,RP0
MOVWF EEDATA               
MOVLW D'11' ; EEPROM location 11 +
; ADDWF OFFSET,W ; offset from start
MOVWF EEADR
  BCF STATUS,RP0             
CALL ESCRIBIR

MOVF MINUTOS10,W
  BSF STATUS,RP0           
MOVWF EEDATA               
MOVLW D'10' ; EEPROM location 10 + 
; ADDWF OFFSET,W ; offset from start
MOVWF EEADR
  BCF STATUS,RP0           
CALL ESCRIBIR

MOVF HORAS,W
  BSF STATUS,RP0             
MOVWF EEDATA             
MOVLW D'09' ; EEPROM location 9 + 
; ADDWF OFFSET,W ; offset from start
MOVWF EEADR
    BCF STATUS,RP0             
CALL ESCRIBIR
RETURN

La rutina para escribir creo que la tenia bien

De todas maneras aqui dejo los cambios que hice a la rutina de escribir

Esta es para el 16f84A
Código: [Seleccionar]
ESCRIBIR   
     bcf INTCON, GIE
      bsf STATUS,RP0
      bcf EECON1,WRERR
      bsf EECON1,WREN
      movlw H'55'
      movwf EECON2
      movlw H'AA'
      movwf EECON2

      bsf EECON1,WR            
ES1 nop
      btfss EECON1,EEIF
      goto ES1
      nop
      btfsc EECON1,WRERR
      goto ESCRIBIR
      nop
      bcf EECON1,EEIF
      bcf EECON1,WREN
      bcf STATUS,RP0
      bsf INTCON, GIE
      return



Y esta es para el 16f627 y 16f628
Código: [Seleccionar]
ESCRIBIR

BCF INTCON, GIE ; Disable INTs.
BSF STATUS, RP0 ; Bank 1
bcf EECON1,WRERR
BSF EECON1, WREN ; Enable write
MOVLW 55h ;
MOVWF EECON2 ; Write 55h
MOVLW 0xAA ;
MOVWF EECON2 ; Write AAh
BSF EECON1,WR ; Set WR bit
; begin write
ESPERAR
BCF     STATUS,RP0
BTFSS PIR1,EEIF ; Lee ek EEIF y salta una instrucción si el valor es 1
GOTO ESPERAR         ; Espera de grabación de la EEPROM
BSF     STATUS,RP0
btfsc EECON1,WRERR
goto ESCRIBIR
BCF     STATUS,RP0
BCF PIR1,EEIF ; Limpia el flag EEIF
BSF     STATUS,RP0
bcf EECON1,WREN
BCF STATUS,RP0
BCF INTCON, GIE
RETURN

Gracias por el Tip, Realmente es una desagradable Sorpresa, pero ya todo funcionando...

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Migrar del 16F84 al 16F628, no logro escribir en la eeprom...
« Respuesta #3 en: 13 de Mayo de 2007, 18:31:31 »
jejejej amigo mincho permitame decirle algo más, no tiene porque denominarla como desagradable sorpresa, pues de no haber sido asi, Ud. no hubiera aprendido, y mucho aún peor, no lo hubiera resuelto por Ud. mismo; alegrese ha dado un gran paso en este universo de la programación de microcontroladores. felicitaciones y a seguir con mas retos!!!! exitos!!!  :-/ :-/ :-/ :-/ :-/ :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com