TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Layton en 01 de Abril de 2010, 14:36:19
-
hola tengo estoy haciendo un programilla que si le das al boton las luces se enciendan y si le das otra vez se apaguen.
(http://img253.imageshack.us/img253/9088/20100401193006748x520.png)
x VAR BYTE
LEDS VAR PORTB
TRISB=0
TRISA=1
LEDS=1 ' %00000001
INICIO:
IF PORTA.0=0 THEN PROG
GOTO INICIO
PROG:
FOR x = 1 TO 4
LEDS=LEDS<<1
PAUSE 100
IF PORTA.0=0 THEN INICIO
NEXT
FOR x = 1 TO 4
LEDS = LEDS >> 1
PAUSE 100
IF PORTA.0=0 THEN INICIO
NEXT
GOTO PROG
END
hace cosas raras... vamos de todo menos lo que quiero :D
saludos
-
En primer lugar y para ir eliminando cosas colocararia un retardo software para eliminar los rebotes que se producen al accionar los intgerruptores, pulsadores,........
Fer.
-
gracias Fer
-
apaga los comparadores cmcon = 7
-
Yo te recomendaria usar GOTO y RETURN, quiz'a tenes un problema de stack al hacer las llamadas una y otra vez y no regresar.
ESTE SERIA EL PSEUDOCODIGO PARA EL ENUNCIADO, NO ASI PARA LO QUE POSTEASTE como ejemplo.
DIM BANDERA AS BYTE
inicio:
IF PORTA.0=0 THEN
DO
UNTIL PORTA.0=1
IF BANDERA=0 THEN
BANDERA=1
GOSUB PROG
ELSE
BANDERA=0
GOSUB APAG
ENDIF
ENDIF
GOTO INICIO:
APAG:
PORTB=0
RETURN
PROG:
PORTB=255
RETURN
END