Autor Tema: protegido contra escritura al simular  (Leído 1764 veces)

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

Desconectado riki

  • PIC10
  • *
  • Mensajes: 19
protegido contra escritura al simular
« en: 24 de Marzo de 2010, 20:10:47 »
buenas noches mis hermanos, como estan, mi cuestionamiento es como sigue: estoy realizando un proyecto de contador de turno son un pic 16f873a, es necesario que ante un repentino corte de energia, en el micro quede guardado el ultimo turno, bueno, hasta aqui bien, hice las rutinas de configuracion de lectura escritura de la memoria flash del pic: QUE SON ESTAS:
LECTURA
      BSF      estado,6   
      BCF      estado,5   ; Selecciona banco 2
      MOVF   MEM1_BAJO,0      ; Dirección a leer de
      MOVWF   EEADR      ; la EEPROM PARTE BAJA
      MOVF   MEM1_ALTO,0      ; Dirección a leer de
      MOVWF   EEADRH      ; la EEPROM PARTE ALTA
      BSF      estado,5   ; Selecciona banco 3
      BSF      EECON1,7   ; se selecciona el acceso a la flash
      BSF      EECON1,0   ; Activar lectura RD
ESPERA   BTFSC   EECON1,0   ; Espera final de lectura
      GOTO   ESPERA      ; a que baje la bandera
      BCF      estado,5   ; Selecciona banco 2
      MOVF   EEDATA,0   ; W se carga con el valor
      BCF      estado,6   ; Selecciona banco 0
      movwf   registro   ; leído en eeprom
      goto   bucle

ESCRITURA

      BSF      estado,6   ;pasamos al banco 2
      bcf      estado,5   ; Establecer EEADR y EEDATA
      MOVF   MEM1_BAJO,0
      MOVWF   EEADR      ; Escribe la dirección en EEADR
      MOVF   MEM1_ALTO,0
      MOVWF   EEADRH      ; Escribe la dirección en EEADR
      MOVF   registro,0
      MOVWF   EEDATA      ; Se escribe el dato en EEDATA
      BSF      estado,5   ; Selecciona el banco 3
      BSF      EECON1,7   ; se selecciona el acceso a la flash
      BSF      EECON1,2   ; Permiso de escritura activado
      ;Comienzo de la secuencia de escritura
      MOVLW   0x55
      MOVWF   EECON2      ; Se escribe el dato 55 h en EECON2
      MOVLW   0xAA
      MOVWF   EECON2      ; Se escribe AA h en EECON2
      BSF      EECON1,1   ; Comienza la escritura
      BCF      EECON1,2   ; Permiso de escritura desactivado
      CALL   retardo
ESPERA_2 BTFSC   EECON1,1   ; Espera a que termine la escritura
      GOTO   ESPERA_2
      BCF      estado,6    ; Selecciona el banco 0
      BCF      estado,5    ; Selecciona el banco 0
      RETURN

compilo y todo bien,lo quiero simular en proteus pero el problema es que hay un aviso de que este esta protegido contra escritura, segun puedo notar se lee el dato de la eeprom, pero no puede ser escrita, el error dice
attempt to write program EEPROM 0X00EF not allowed - memory 0x0800-0x0FFF is market as qrite protected in configuration word.

lei al respecto y me dice que en este tipo de pic solo se puede escribir durante la ejecucion, y hay varios fuses para configurar el trabajo del micro, como ser el oscilador, perro guardian, el CP, etc, etc, y tambien hay uno que dice WRT, que segun lei es el que habilita la escritura, entonces puse lo siguiente al principio del programa:
   list    P=16F873A
   include <p16F873A.inc>
   __CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC

_WRT_OFF esta deshabilitado, por lo tanto deberia simulaR y escribir en el micro, pero no lo logro muchachos, me podrian dar una mano, y ver que podria estar haciendo mal?, gracias desde ya