Autor Tema: AYUDA POR FAVOR!!!!!!!!!!!!!!!!!!!!!!!!!!!!  (Leído 1514 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado er_clemen

  • PIC10
  • *
  • Mensajes: 42
AYUDA POR FAVOR!!!!!!!!!!!!!!!!!!!!!!!!!!!!
« 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

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: AYUDA POR FAVOR!!!!!!!!!!!!!!!!!!!!!!!!!!!!
« Respuesta #1 en: 17 de Julio de 2003, 12:56:00 »
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.

Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Eduagra

  • PIC16
  • ***
  • Mensajes: 116
RE: AYUDA POR FAVOR!!!!!!!!!!!!!!!!!!!!!!!!!!!!
« Respuesta #2 en: 19 de Julio de 2003, 12:00:00 »
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