Hola buenas noches. Como el título lo describe, necesito generar dos pulsos negativos a partir de un pulso, también negativo. Es para la central de la alarma del auto. Y la cuestión es que la tecla original tira un solo pulso para trabar y destrabar (como lee el estado de la central del cierre sabe si debe trabar o destrabar) pero al ser una alarma no original usan dos pulsos.. Mi pregunta es como puedo hacer , la cuestión sería que presione una vez y tire un pulso por un cable y si vuelvo a presionar lo haga por otro cable.
Traté de hacer un código, pero no tengo éxito, soy nuevo en los pics y realmente no entiendo cual es el error.
CMCON = 7
abierto var portb.7 ;la central envía un pulso positivo
cerrado var portb.6 ;la central envia un pulso positivo
boton var portb.0 ;swith que traba/destraba
abre var portb.1 ;pulso de salida para destrabar
cierra var portb.3 ;pulso de salida para trabar
estado var portb.2 ;indica con un led el estado de la central (si está trabado se enciende)
conteopulsos var byte ;contador de pulsos
rebote var byte
inicio: ;inicio del programa
if abierto = 0 then ;pregunta si abierto está en alto
high estado ;salida a led estado
endif
if cerrado = 1 then ; pregunta si cerrado está en alto
low estado ; apaga led estado
endif
Contar: ;rutina de conteo
conteopulsos = 0 ;conteo está en 0
if boton = 0 then
endif
if rebote = 0 then
conteopulsos = conteopulsos + 1 ;suma un 1 a conteopulsos
rebote = 0
endif
if conteopulsos = 1 then ;si conteopulsos es 1 enciende salida "cierra"
high cierra ; encendio "cierra"
pause 250 ;espera 250 milisegundos
low cierra ;apaga "cierra"
endif
if conteopulsos = 2 then ,si conteopulsos es 2 enciende salida #abre
rebote = 0
high abre ;encendio "abre"
pause 250 ; espera 250 milisegundos
low abre ;apaga "abre"
endif
rebote = 1
goto inicio ;vuelve al inicio
es lo que logro hacer desde mi poco conocimiento, y no alcanza para hacer funcionar un código quizás muy simple..
Cual/es podrían ser los errores?
Gracias!