Saludos amigos, nuevamente solicito su ayuda en un problema que estoy teniendo para escribir en la memoria EEPROM.
Me explico mejor para darme a entender
estoy intentando recibir datos y guardarlos en la EEPROM, pero para poder recibir los datos debí habilitar las interrupciones y esto me esta causando problemas he intentado desabilitar las interrupciones al principio de la escritura y luego habilitarlas al final pero igual me sigue dando problemas.
Coloco solo las subrutinas que estoy utilizando ya que el programa es un poco largo
Esta es mi rutina de interrupciones
; ###########################################################################
; INTERRUPCION
; ###########################################################################
ORG 0x04 ;Aqui defines acciones de las interrupciones
;################### SALVAR LOS ESTADOS################################
movwf TEMP_W
swapf STATUS,w
movwf TEMP_STATUS
bcf STATUS,RP0
swapf FSR,W
movwf TEMP_FSR
;###################### RUTINA DE INTERRUPCION ########################
btfss PIR1,RCIF
goto $-1
movfw RCREG
bcf PIR1,RCIF
;################### RESTAURAR LOS ESTADOS############################
swapf TEMP_FSR,w
movwf FSR
swapf TEMP_STATUS,w
movwf STATUS
swapf TEMP_W,w
return
para escritura de la EEPROM
REGISTROS USADOS: EEADR=direccion ,EEDATA=data
wrmem
BANK_0 ;
bcf INTCON,GIE ;deshabilita la interrupciones
BANK_3 ;
bcf EECON1,EEPGD ;apunta a la memoria de datos
bsf EECON1,WREN ;Habilita la escritura
movlw 0x55 ;
movwf EECON2 ;
movlw 0xAA ;
movwf EECON2 ;
bsf EECON1,WR ;habilita para iniciar la escritura
btfsc EECON1,WR ;
goto $-1 ;
BANK_0 ;banco 0
bsf INTCON,GIE ; Habilita las interrupciones
return ;
Este es el programa principal que planteo
Inicio
; #############Recibir y escribir en la EEPROM##################################################
prueba
movlw .5
movwf t1
movlw 0x00
movwf t0
nop
incf t0,1
btfss PIR1,RCIF
goto $-1
call receive
BANK_2
movwf EEDATA
movfw t0
movwf EEADR
call wrmem
call send
decfsz t1
goto $-10
goto prueba
Si alguien me puede ayudar y decir donde esta elk fallo o que estoy haciendo mal estaría muy agradecido.
saludos y muchas gracias de antemano