Autor Tema: Problema con la instruccion while!!!  (Leído 2348 veces)

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

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
Problema con la instruccion while!!!
« en: 14 de Enero de 2010, 19:50:23 »
Ante todo un cordial sludos a todos los foreros.

Les escribo porque se me esta presentando un problema con la instruccion WHILE, el codigo es el siguiente:
Código: [Seleccionar]

While Porta.1 = 0 OR Porta.2 = 0
high  Portb.1
Wend
Low  Portb.1


El tema es que no me funciona con las dos condiciones (While Porta.1 = 0 OR Porta.2 = 0), solo funciona con una condicion (While Porta.1 = 0).
De pronto hay una manera deiferente de hacerlo pero no la se, por favor si hay alguien que me pued orientar se los agradezco.

Saludos..

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Problema con la instruccion while!!!
« Respuesta #1 en: 14 de Enero de 2010, 20:25:42 »
En PSI funciona (siempre y cuando defina los pin) pero cuando RA1 = RA2= 1 termina el programa.

AllDigital  'Todos lon pin digitales
TRISA.1 = 1  'Como entrada
TRISA.2 = 1  'Como entrada
TRISB.1 = 0  'Como salida

  While PORTA.1 = 0 Or PORTA.2 = 0
    High PORTB.1
  Wend
  Low PORTB.1

A mi me gusta mejor de esta otra manera:

AllDigital  'Todos lon pin digitales
TRISA.1 = 1  'Como entrada
TRISA.2 = 1  'Como entrada
TRISB.1 = 0  'Como salida

main:

  While PORTA.1 = 0 Or PORTA.2 = 0
    High PORTB.1
  Wend
  Low PORTB.1

Goto main
End 
Saludos desde Granada, España.

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
Re: Problema con la instruccion while!!!
« Respuesta #2 en: 14 de Enero de 2010, 21:11:55 »
Gracias Dog.

que es Psi???, la instruccion while funciona pero solo si lo coloco con una condicion, ej: while Porta.1 = 0, si le coloco las dos condiciones no me hace ni una ni la otra.

voy a probar como dices a ver, yo uso como compilador el PBP y microcode.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Problema con la instruccion while!!!
« Respuesta #3 en: 14 de Enero de 2010, 21:25:12 »
Por eso es conveniente al preguntar indicar que versión de Basic se está utilizando.
Esta es el Basic del PSI. Los lenguajes Basic tienen sus pequeñas diferencias entre sí. A ver si alguien que utilice habitualmente el mismo que el tuyo te puede ayudar.
Saludos desde Granada, España.

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: Problema con la instruccion while!!!
« Respuesta #4 en: 15 de Enero de 2010, 10:53:43 »
Has probado a escribir: While (Porta.1 = 0 OR Porta.2 = 0) ¿?

Un saludo!

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
Re: Problema con la instruccion while!!!
« Respuesta #5 en: 27 de Enero de 2010, 10:36:24 »
Gracias Strepto.

No he probado de esa manera, lo voy a hacer y les cuento como me fue.


Saludos

Desconectado janiro74

  • PIC10
  • *
  • Mensajes: 44
Re: Problema con la instruccion while!!!
« Respuesta #6 en: 28 de Enero de 2010, 18:50:21 »
compañero yo he compilado estas lineas con el compilador de basic de pic simulator ide y funciona bien
he colocado la etiqueta main: y la linea goto main por si quieres que el programa inicie la gestion de la siquacion de poner a 0 la portb.1 cuando porta.1 "y" porta.2 esten en 1
 
supongo que habras definido los puertos de entrada y salida con el tegistro TRIS

TRISA = 255
TRISB = 0
main:
While PORTA.1 = 0 Or PORTA.2 = 0
High PORTB.1
Wend
Low PORTB.1
Goto main


te adjunto el hex por si quieres simularlo con pic simulator ide
saludos


 

anything