Título: retardo en interrupcion por escritura en EEPROM Publicado por: antareZ en 15 Octubre 2016, 04:40 am hola ! tengo una duda y espero que me puedan ayudar ! hice un codigo en asm que pone en estado de bajo consumo a un pic en este caso (16f887) cuando esta en este estado debe entrar la interrupción escribiendo un dato en la memoria EEPROM sacando del estado de bajo consumo al pic
el codigo funciona lo tengo simulado en proteus el problema es al llevarlo ala practica en fisico a los 4Mhz del pic ,en el codigo puse dos leds en el portB uno que me indica que el pic esta en sleep y otro que me indica cuando se realizo la escritura, debido ala velocidad de con se que guarda el dato el led que esta en RB0 que me indica la escritura no se llega a apreciar cuando prende y es ahí donde necesito meter un retardo use libreria y probe en todos lados un retardo de 500ms y de 1 seg pero no funciona ayudenme porfavor recien comienzo en el lenguaje ensamblador y hay muchas cosas que no entiendo :-[ si es algo muy facil o tonto no se burlen soy novato :xD Código: list p=16f887 #include<p16f887.inc> __CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_ON & _CPD_OFF & _BOREN_OFF & _IESO_OFF & _FCMEN_OFF & _LVP_OFF direc EQU 0x01 dato EQU 0x0C ORG 0X00 goto inicio ORG 0X04 goto rut_eeprom ORG 0X05 inicio bsf STATUS,RP1 bsf STATUS,RP0 bcf INTCON,GIE bsf INTCON,EEIE bsf EECON1,WREN movlw direc bcf STATUS, RP0 movwf EEADR movlw h'88' movwf EEDATA bcf STATUS,RP1 bcf STATUS,RP0 bsf STATUS,RP0 clrf TRISB movlw h'55' bsf STATUS,RP1 movwf EECON2 MOVLW h'AA' movwf EECON2 bsf EECON1,WR bsf INTCON,GIE bcf STATUS,RP1 bcf STATUS,RP0 clrf PORTB bsf PORTB,0 bsf PORTB,1 sleep fin goto fin rut_eeprom ;interrupcion bsf STATUS,RP1 bcf STATUS, RP0 movf EEDATA,W bsf STATUS,RP0 bcf EECON1,EEIF bsf EECON1,RD bcf STATUS, RP0 subwf EEDATA,W btfss STATUS,Z goto erro bcf STATUS,RP1 bcf STATUS,RP0 bsf PORTB,1 erro Retfie #include <RETARDOS.INC> END |