Hola amigos hacia mucho que no entraba en el foro estoy retomado esto de programar PIC, el problema es el siguiente cuando se carga el valor de TMR0 se cambia el valor del registro OPTION_REG lo que hice fue que despues que cargo el valor del TMR0, recargo el valor del OPTION_REG, pero luego despues entonces cuando aplico clrf al puerto B entonces se modifica el TRISB, creia que era que el archivo se corrompia pues me ha pasado muchas veces y con esto se resolvia pero nada, reinstale MPLAB que es la version 8.92 por ultimo reinstale windows 7 y nada.......el problema persiste
abajo les muestro el codigo
;---------------Encabezado-------------
#include "p16f628a.inc"
LIST P=PIC16F628A
CBLOCK 0X20
Salto_A, Fase, Angulo, E1, Ret_E, W_Temp, S_Temp
ENDC
#DEFINE RB0_Sinc PORTB, 0 ;
#DEFINE G_Der PORTB, 1 ;
#DEFINE G_Izq PORTB, 2 ;
#DEFINE Temp_E E1, 0 ;
#DEFINE Sal_T E1, 1 ;
;-------Configuración de puertos-------
org 0x00
goto inicio
org 0X04 ;
btfss INTCON, T0IF ;
goto RB0_Int ;
bcf INTCON, T0IF ;
bsf INTCON, INTE
banksel OPTION_REG
bsf OPTION_REG, T0CS
goto Fin_Int
RB0_Int
bcf INTCON,INTF ;
bcf INTCON,INTE
banksel OPTION_REG
bcf OPTION_REG, T0CS
Fin_Int
bcf Sal_T
retfie ;
inicio
banksel OPTION_REG
MOVLW b'01100000' ;
MOVWF OPTION_REG ;
MOVLW b'10110000' ;
MOVWF INTCON ;
call TMR0_G
call Ret_G
CLRF PORTB ;
banksel TRISB ;
movlw b'00000001' ;
movwf TRISB ;
bsf Sal_T
goto Nada
Nada
nop
goto Nada ;
TMR0_G
movlw .6 ;
MOVWF TMR0
movwf Angulo
movlw .8 ;
MOVWF Salto_A
movlw .240 ;
MOVWF Fase
banksel OPTION_REG
MOVLW b'01100000' ;
MOVWF OPTION_REG ;
Return
Ret_G
movlw .50 ;
movwf Ret_E
Return
;------------------------------------------
END
;------------------------------------------
este es programa modificado si ven se configura el puerto b al final y se carga el OPTION_REG despues del TMR0
el programa lo que deberia hacer es que espera una interrupcion por el puerto RB,0 esta atiende la interrupcion y activa el TMR0 para hacer una temporizacion y desactiva la interrupcion por RB,0, luego de activar la interrupcion por el TMR0, se desactiva esa y si activa la interrupcion del RB,0