TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: beatAurex1 en 25 de Julio de 2006, 21:12:34
-
Hola foreros este es mi segundo post,,bueno soy nuevo en el mundo de los pics, y espero me regalen unos minutos,bueno quiero encender 3 leds al mismo tiempo al oprimir un boton, y que cada uno dure cierto tiempo encendido, pero no entiendo que esta mal al oprimirlo solo se enciende uno y despues los demas y no todos al mismo tiempo, tambien si alguien me puede orientar con alguna instruccion que pueda utilizar para saber si se presiono dos veces el boton.
device 16F877A
TRISD=%11111111
TRISB=%00000000
principal: 'Programa Principal
if portd.0=1 then
GOSUB led1
GOSUB led2
gosub led3
endif
goto principal
led1: PORTB.1=1
delayms 360000
PORTB.1=0
return
led2: PORTB.2=1
DELAYMS 1500
PORTB.2=0
RETURN
led3: PORTB.3=1
DELAYMS 11000
PORTB.3=0
RETURN
Gracias
-
Hola beatAurex1:
No se encienden todos juntos porque, precisamente los envías a encender de a uno con los gosub.
Prueba con esto en el bucle principal:
PRINCIPAL:
IF PORTD.0 = 0 THEN PRINCIPAL 'Si lo mantengo en 0 al PORTD.0 se vuelve manteniendose en espera
'Si lo pongo a uno hace la rutina que sigue
PORTB.1 = 1 'Enciendo los tres leds conectados a
PORTB.2 = 1 'los pines 1, 2 y 3 del puerto B
PORTB.3 = 1
DELAYMS 2000 'Después de dos segundos que se encendieron los tres
PORTB.1 = 0 'Apago el del pin 1
DELAYMS 2000 'Espero dos segundos más
PORTB.2 = 0 'Apago el del pin 2
DELAYMS 2000 'Espero dos segundos más
PORTB.3 = 0 'Apago el del pin 3
GOTO PRINCIPAL 'Reinicio la secuencia
Otra cosa, DELAYMS acepta como máximo 65535 milisegundos y en un lugar te mandaste 360000 ....
Respecto a lo de presionar dos veces el mismo botón, creo que puedes probar con las instrucciones COUNTER, o PULSIN
Espero haberte ayudado.
Saludos
Mario
-
GRACIAS POR LA RESPUESTA MARIOQUILLOTE,, ME HAS DADO UN POCO DE LUZ PARA EMPEZAR EL PROGRAMA