Autor Tema: Problema con rutina de grabacion EEPROM  (Leído 2336 veces)

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

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Problema con rutina de grabacion EEPROM
« en: 22 de Enero de 2011, 11:55:08 »
Estoy trarando de hacer una rutina de grabacion de la eeprom en forma secuencial, que toma el dato  y la direccion de los registros: "dato" y "dir" y los graba uno a continuacion del otro pero  no me funciona. Al parecer no se escribe EEADR o EEDATA con el valor de dir y dato y por eso no graba nada. Al hacerlo directamente si graba. Este es el codigo:
Código: [Seleccionar]
    movlw 07h
movwf dir
movlw 'K'
movwf dato
call escribir

bsf STATUS, RP0 ;Bank 1
movlw 00h
movwf EEADR;cargo direccion a escribir
        movlw 'A'
movwf EEDATA; cargo dato a escribir
        bcf STATUS, RP0 ; Bank 0
        call WhiteEEPROM
call RETARDO4MS

goto fin

escribir
            bsf STATUS, RP0 ;Bank 1
movf  dir,w
movwf EEADR;cargo direccion a escribir
movf dato,w
movwf EEDATA; cargo dato a escribir
                bcf STATUS, RP0 ; Bank 0
               call WhiteEEPROM
       call RETARDO4MS
  return

fin
nop
goto fin
end

Cual es el error?

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con rutina de grabacion EEPROM
« Respuesta #1 en: 22 de Enero de 2011, 12:10:37 »
  ¿Pero las variables dir y dato en que banco están?
  Porque cuando vas a "escribir" estás cambiando de banco y si dir y dato están en otro banco no vas a poder acceder al valor adecuado.

  Tampoco veo que llames a alguna rutina para escribir. Sí veo que llamás a WhiteEEPROM pero por su nombre yo diría que dicha rutina borra la eeprom.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: Problema con rutina de grabacion EEPROM
« Respuesta #2 en: 22 de Enero de 2011, 12:18:31 »
  ¿Pero las variables dir y dato en que banco están?
  Porque cuando vas a "escribir" estás cambiando de banco y si dir y dato están en otro banco no vas a poder acceder al valor adecuado.

  Tampoco veo que llames a alguna rutina para escribir. Sí veo que llamás a WhiteEEPROM pero por su nombre yo diría que dicha rutina borra la eeprom.
Los registros dir y dato estan en direcciones del banco 0, del 21H en adelante. La rutina whiteEEPROM escribe bien pero me equivoque el nombre, la segunda parte en donde escribe una 'A' la hace bien pero la primera no la hace.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con rutina de grabacion EEPROM
« Respuesta #3 en: 22 de Enero de 2011, 12:23:43 »
  Justamente ahí está el problema. Estás queriendo copiar un dato que tenés en el banco 0 pero estás trabajando en el banco 1 en está parte del código...

Código: ASM
  1. escribir
  2.                 bsf STATUS, RP0 ;Bank 1
  3.                 movf  dir,w
  4.                 movwf EEADR;cargo direccion a escribir
  5.                 movf dato,w
  6.                 movwf EEDATA; cargo dato a escribir

  Fijate que pasás al banco 1 con "bsf STATUS, RP0"
  En el segundo caso te graba bien porque estás poniendo directamente el valor, tanto a EEADR como a EEDATA.

  ¿Qué PIC estás usando? Sino fijate de definir tanto dri como data en el banco 1 para ver que pasa.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: Problema con rutina de grabacion EEPROM
« Respuesta #4 en: 22 de Enero de 2011, 17:42:15 »
Gracias a tu ayuda pude solucionar el problema, cambiando de banco los registros. Ya tengo hecha mi rutina para escribir la memoria en una direccion aleatoria.  :-/ Gracias.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con rutina de grabacion EEPROM
« Respuesta #5 en: 22 de Enero de 2011, 19:27:11 »
Gracias a tu ayuda pude solucionar el problema, cambiando de banco los registros. Ya tengo hecha mi rutina para escribir la memoria en una direccion aleatoria.  :-/ Gracias.

  Me alegro que funcione!
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas


 

anything