Hola, estoy intentando hacer un circxuito antirebote con este pic. El caso es que tiene que cuando recibe un 0 en GP3 tiene que cambiarme la salida de GPIO,2 a 0, cambiar a 1 de nuevo e ignorar los rebotes durante X ms, estoy intentando hacer un retardo pero no me da salido. Adjunto código por si teneis sugerencias. Estoy simulando con el MPLAB. El 12f629 me cuesta por ahora. Muchas gracias por anticipado.
LIST P=12F629
INCLUDE P12F629.INC
ERRORLEVEL -302
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0X20
;espacio para la declaracion de variables
ENDC
#define salida GPIO,2 ;configuro salida para micro controlador
#define entrada GPIO,3 ;configuro entrad sensor
ORG 00
GOTO CONFIGURA
;espacio para las subrrutinas
CONFIGURA NOP
CLRF GPIO
MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines
MOVWF CMCON ; digitales
BANKSEL OSCCAL ;para calibrar el oscilador interno
CALL 3FFH ; Obtengo el valor de calibracion del oscilador
MOVWF OSCCAL
CLRF TRISIO
BANKSEL GPIO
; bsf status, rp0 ;bank 1
movlw b'0001000' ;(x= don't care = does not matter)
movwf TRISIO ;the lowest bit will be an OUTPUT
;bcf status, rp0 ;bank 0
;Programa principal
CICLO
btfss GPIO,3
GOTO RETARDO
ACTIVASALIDA
BSF GPIO,2
RETARDO
GOTO CICLO
END
LIST P=12F629
INCLUDE P12F629.INC
ERRORLEVEL -302
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0X20
;espacio para la declaracion de variables
ENDC
#define salida GPIO,2 ;configuro salida para micro controlador
#define entrada GPIO,3 ;configuro entrad sensor
ORG 00
GOTO CONFIGURA
;espacio para las subrrutinas
CONFIGURA NOP
CLRF GPIO
MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines
MOVWF CMCON ; digitales
BANKSEL OSCCAL ;para calibrar el oscilador interno
CALL 3FFH ; Obtengo el valor de calibracion del oscilador
MOVWF OSCCAL
CLRF TRISIO
BANKSEL GPIO
; bsf status, rp0 ;bank 1
movlw b'0001000' ;(x= don't care = does not matter)
movwf TRISIO ;the lowest bit will be an OUTPUT
;bcf status, rp0 ;bank 0
;Programa principal
CICLO
btfss GPIO,3
GOTO RETARDO
ACTIVASALIDA
BSF GPIO,2
RETARDO
GOTO CICLO
END