Autor Tema: Generar dos pulsos con mismo boton  (Leído 104 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fanloeb

  • PIC10
  • *
  • Mensajes: 8
Generar dos pulsos con mismo boton
« en: 20 de Abril de 2017, 23:19:03 »
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!