salto a funzioni

ragazzi ma nel linguaggio arduino è possibile fare salti a funzioni come nel C classico? o si sviluppa tutto nel loop?

è una cosa che non ho mai capito nemmeno io…
dovrebbe avere a che fare con la funzione void, help anche a me :slight_smile:

Le funzioni si possono creare. Una volta che richiami una funzione è normale il salto. O ti riferisci al fatto di saltare in un punto x del programma. Non ho capito cosa intendi?

Cmq se intendi un salto in un determinato punto, puoi anche utilizzare GOTO

http://arduino.cc/en/Reference/Goto

mi riferivo alla chiamata di una funzione..

Penso che si riferisca al gosub più che al goto comunque le funzioni in arduino si possono fare e sono molto comode !

Io per esempio le ho usate nella mia centralina per le luci di casa

// Funzione che inverte lo stato del relè
void inverti_uscita (int i)
{ 
  // Incremento il contatore, se è dispari (dividendo per 2 ho il resto) alzo l'uscita altrimenti l'abbasso
  ContaImpulsi[i]++;
  if(ContaImpulsi[i] % 2 ){
    digitalWrite(Uscita[i],HIGH);
    time_uscita_attivata[i] = millis();
  }
  else
    digitalWrite(Uscita[i],LOW);
}

// Funzione che setta il relè
void setta_uscita (int i)
{ 
  // Incremento il contatore, se è dispari (dividendo per 2 ho il resto) alzo l'uscita altrimenti l'abbasso
  ContaImpulsi[i] = 1;
  time_uscita_attivata[i] = millis();
  digitalWrite(Uscita[i],HIGH);
}

// Funzione che resetta il relè
void resetta_uscita (int i)
{ 
  // Incremento il contatore, se è dispari (dividendo per 2 ho il resto) alzo l'uscita altrimenti l'abbasso
  ContaImpulsi[i] = 0;
  digitalWrite(Uscita[i],LOW);
}

Se voglio per esempio con un comando seriale accendere la luce 1, spegnere la 2 e invertire lo stato della 3 (se è accesa la spengo e viceversa) è sufficiente nel void loop inserire le chiamate alle funzioni:

if (comando_seriale == 'a')
{
  setta_uscita(1);
  resetta_uscita(2);
  inverti_uscita(3);
}

Non sono molto esperto ma ... se hai dubbi chiedi pure !

Dimenticavo: qui è spiegato abbastanza bene !

ti ringrazio ambrogio!

Di nulla, siamo qui per aiutarci a vicenda ! Ciao. :wink: