TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: er_clemen en 17 de Julio de 2003, 11:57:00
-
AYUDA POR FAVOR!!!!!!!
Hola amiguetes:
¿Alguien ve donde está el error en este programita?No funciona como se espera que funcione: El cambio lo provoca un pulso en SW_FUERA y no en SW_DENTRO, además el cambio dura unos segundos y la vuelta a FUNC_NORMAL no depende de ningun SW (como esta especificado).
Micro: PIC16F877
Compilador: Pic Basic Pro, con CD Lite.
Debug "SEMÁFORO 1 ACCESO, 1 CARRIL DE E/S"
SW_DENTRO VAR PORTB.1
SW_FUERA VAR PORTB.2
VERDE_DENTRO VAR PORTB.3
VERDE_FUERA VAR PORTB.4
FUNC_NORMAL:
IF (SW_DENTRO=1) AND (SW_FUERA=0) Then CAMBIO
Low VERDE_FUERA
High VERDE_DENTRO
GoTo FUNC_NORMAL
CAMBIO:
High VERDE_FUERA
Low VERDE_DENTRO
IF SW_FUERA=1 Then FUNC_NORMAL
GoTo CAMBIO
-
Como es el circuito??
Cuando se activan los pulsadores el micro lee un nivel alto o un bajo??
A mi me paso en una aplicacion que estaba con los niveles invertidos, que no respondia como yo queria.
Si es asi solo tendrias que comparar invertido, es decir donde comparas con 1 comparar con 0 y viceversa.



-
Voy a intentar ayudarte dentro de mis escasos conocimientos. Lo que veas en negrita es lo que he añadido yo.
SW_DENTRO VAR PORTB.1
SW_FUERA VAR PORTB.2
VERDE_DENTRO VAR PORTB.3
VERDE_FUERA VAR PORTB.4
FUNC_NORMAL:
INPUT SW_DENTRO
INPUT SW_FUERA
IF (SW_DENTRO=1) AND (SW_FUERA=0) Then CAMBIO
Low VERDE_FUERA
High VERDE_DENTRO
GoTo FUNC_NORMAL
CAMBIO:
High VERDE_FUERA
Low VERDE_DENTRO
INTPUT SW_FUERA
IF SW_FUERA=1 Then FUNC_NORMAL
GoTo CAMBIO
Prueba con las líneas que te he añadido a ver si rula.
Salu2