TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Medusa en 16 de Diciembre de 2011, 12:05:42
-
Hola, alguien me puede decir cual es mi error con este codigo...
#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!!!
-
............
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.
-
:-/, tienes razon.. gracias !!!