Buenas, estoy programando en MPLAB un pic 12f675 que debe encargarse de una secuencia logica(si hay una entrada en 1 se activa 2 y si hay en 3 se activa en 4, etc).
El problema es que necesito 3 entradas para 3 sensores pero no logro hacer que se detecte nada fuera de los pines 3 y 5, es decir, si pongo btfsc GPIO,3 si detecta el cambio, pero si pongo btfsc GPIO,4 no lo hace.
Hasta ahora estoy usando 2 entradas por esa limitante pero me gustaria ver si alguien me pudiera ayudar.
Este es mi codigo
#include<p12f675.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF)
org 0
bcf STATUS,5
movlw 0x07
movwf CMCON
bsf STATUS,5
movlw 3Ch //configuro 0 y 1 como salida y lo demas como entrada
movwf TRISIO
bcf STATUS,5
clrf GPIO
inicio:
btfsc GPIO,3
goto derecha
goto izquierda
derecha:
btfsc GPIO,5
goto derecho
movlw 01h ;load w reg
movwf GPIO ;switch on pins
goto inicio
izquierda:
btfss GPIO,5
goto nada
movlw 02h ;load w reg
movwf GPIO ;switch on pins
goto inicio
derecho:
movlw 03h
movwf GPIO
goto inicio
nada:
movlw 00h
movwf GPIO
goto inicio
end
Cualquier ayuda se agradecera
El problema es que necesito 3 entradas para 3 sensores pero no logro hacer que se detecte nada fuera de los pines 3 y 5, es decir, si pongo btfsc GPIO,3 si detecta el cambio, pero si pongo btfsc GPIO,4 no lo hace.
Hasta ahora estoy usando 2 entradas por esa limitante pero me gustaria ver si alguien me pudiera ayudar.
Este es mi codigo
#include<p12f675.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF)
org 0
bcf STATUS,5
movlw 0x07
movwf CMCON
bsf STATUS,5
movlw 3Ch //configuro 0 y 1 como salida y lo demas como entrada
movwf TRISIO
bcf STATUS,5
clrf GPIO
inicio:
btfsc GPIO,3
goto derecha
goto izquierda
derecha:
btfsc GPIO,5
goto derecho
movlw 01h ;load w reg
movwf GPIO ;switch on pins
goto inicio
izquierda:
btfss GPIO,5
goto nada
movlw 02h ;load w reg
movwf GPIO ;switch on pins
goto inicio
derecho:
movlw 03h
movwf GPIO
goto inicio
nada:
movlw 00h
movwf GPIO
goto inicio
end
Cualquier ayuda se agradecera