Go Down

Topic: Problema com "goto" (Read 1 time) previous topic - next topic

sustirijiyo

Hola

Yo se que la mayoria me diran q eso de usar el goto no es lo mas indicado, aun asi quisiera aprender a utilizarlo y el problema es q tengo un pequeño programa de prueba pero no se por q la palabra no me la toma como codigo, osea q pues no se cambia de color, y bueno veo q la sintaxis es asi simple (goto label;) bueno quisiera saber si en realidad estoy mal o q necesito para utilizarla bien, un ejemplo me vendria de maravilla.

Gracias y saludos.

curro92

Hola,
¿por qué no pones tu programa, para que veamos en qué falla?


sustirijiyo

ok este fue el primer programa q hice... despues lo modifique tanto q le quite los goto y le puse muchas cosas diferentes jeje

int ledPin1 = 8;
int ledPin2 = 9;
int ledPin3 = 11;
int ledPin4 = 12;
int fotoRes = 0;
int val = 0;

void setup()

{
   pinMode (ledPin1, OUTPUT);
   pinMode (ledPin2, OUTPUT);
   pinMode (ledPin3, OUTPUT);
   pinMode (ledPin4, OUTPUT);
   Serial.begin (9600);
}

void loop()
{
   val= Serial.read()-48;

   if(val =='1')
   {
      goto encled1;
   }
   
   else if (val =='2')
   {
      goto encled2;
   }

   else if (val =='3')
   {
      goto encled3;
   }

   else if (val =='4')
   {
      goto encled4;
   }

   else {goto finFin;}

   encled1:
      {digitalWrite(ledPin1, HIGH);
      goto finFin;}
   encled2:
      {digitalWrite(ledPin2, HIGH);
      goto finFin;}
   encled3:
      {digitalWrite(ledPin3, HIGH);
      goto finFin;}
   encled4:
      {digitalWrite(ledPin4, HIGH);
      goto finFin;}
   
   finFin:
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin3, HIGH);
      digitalWrite(ledPin4, HIGH);
      delay(500);
      digitalWrite(ledPin1, LOW);
      digitalWrite(ledPin2, LOW);
      digitalWrite(ledPin3, LOW);
      digitalWrite(ledPin4, LOW);
}




sustirijiyo

tambien me gustaria q me explicaran si es posible los usos e funciones q uno mismo crea para despues llamarlas a lo largo de un programa, para utilizarlos en lugar del goto, gracias

Sergegsx

el uso de funciones esta ampliamente explicados en la web de arduino y en miles de tutoriales por la red.

si ahora has cambiado el programa y has quitado los GOTO, porque no pones el codigo nuevo? por cierto, buena decisión quitar los GOTO.
* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Go Up