Autor Tema: Problemas con D0-While  (Leído 1447 veces)

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

Desconectado Medusa

  • PIC18
  • ****
  • Mensajes: 252
Problemas con D0-While
« en: 16 de Diciembre de 2011, 12:05:42 »
Hola, alguien me puede decir cual es mi error con este codigo...

Código: [Seleccionar]
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,NOSTVREN
#use delay(clock=20000000)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7, ERRORS)// RS232 Estándar
#define RESETX       0   
char Estado = RESETX;   
int8 k;
#define   Program      PIN_B4

void main()   
{   

while (TRUE) {   
 
   k = 1;
   Estado = 1;
   do{
      if (Estado == 1) {                       
      k++;
     } 

   } while ((input(Program)!=0)||(k < 5));
  }   
}
Por que sale  de la condicional do--while solo cuando se cumple las dos condicones, yo necesito que salga de esta condiconal solo al cumplirse una de las condicones!!!


Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problemas con D0-While
« Respuesta #1 en: 16 de Diciembre de 2011, 12:25:54 »
............
Por que sale  de la condicional do--while solo cuando se cumple las dos condiciones, yo necesito que salga de esta condicional solo al cumplirse una de las condiciones!!!


  Como está expresado el while, te vas a quedar allí mientras que K < 5 o la entrada sea distinto que 0, o sea que para salir de allí se van a tener que cumplir con que K >= 5 y a su vez la entrada sea 0.

  Creo que para que salga al cumplirse cualquiera de ellas deberías emplear &&. Así sólo permanecerá en el ciclo siempre que K < 5 y a su vez que la entrada sea distinta de 0. Si alguna de las dos condiciones no se cumple, se saldrá del ciclo.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Medusa

  • PIC18
  • ****
  • Mensajes: 252
Re: Problemas con D0-While
« Respuesta #2 en: 16 de Diciembre de 2011, 12:32:52 »
 :-/, tienes razon.. gracias !!!


 

anything