Pagina 1 di 2

stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 17:13
da danielealfa
ciao a tutti e buon giorno.
avrei bisogno di fare scrivere in una seriale, un testo, che in base al void in cui sono cambi.ma solo una volta
e se ripeto il ciclo ripete il testo.
ho provato in vari modi ma non riesco , o si blocca il "mio codice"
o mi crea altri problemi
se non erro , potrei chiedere se esiste una stringa che esegua un comando solo una volta e che all uscita si resetti
grazie ancora e auguri

Codice: Seleziona tutto
void 1() {

  //mio codice
  }
void 2() {

  //mio codice
  }
void 3() {

  //mio codice
  }
etc

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 17:41
da rugweri
Leggendo, non riesco a capire cosa tu voglia implementare e dunque quale sia il tuo dubbio. Sarebbe opportuno che tu rispiegassi in modo più chiaro cosa vuoi fare e soprattutto proponessi del codice significativo da cui partire per aiutarti.

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 17:41
da IlGuru
Tradotto in una o più frasi di senso compiuto?

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 17:43
da IlGuru
rugweri ha scritto:proponessi del codice significativo da cui partire per aiutarti.


Io lo farei partire dal flow chart, da questo ed altri suoi post si evince che il codice non è il suo forte.

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 17:52
da danielealfa
mi occorre solamente che venga scritto il numero del del void(o nome ) con un serialprint .
Codice: Seleziona tutto
for(int i=0;i<1;i++)
{Serial.print("Ciao");} //stampa 1 volta “Ciao”

ho provato cosi, ma scrive in continuo , solo 1 volta ed che quando esco e richiamo la scritta si ripresenti

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 18:11
da IlGuru
Sarà mica forse perché viene eseguito all'interno di un loop infinito?

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 18:20
da danielealfa
si ma con il comando int, tra le graffe non dovrebbe eseguire il codice 1 volta?

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 18:23
da IlGuru
Non stai eseguendo il main di un programma qualunque, ma un qualcosa che gira che gira nel main loop di arduino.
Che cosa ti spetti che faccia del codice come questo?
Codice: Seleziona tutto
while(1) {
  for(int i=0;i<1;i++)
    {Serial.print("Ciao");} //stampa 1 volta “Ciao”
}

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 18:28
da lucaking
Scusa se te lo dico ma ti spieghi veramente male.
Ricordati che tu hai chiaro cosa vuoi fare, ma chi legge non ne ha idea quindi dovresti spiegarlo il meglio possibile.
Anche il fatto che parli del void non aiuta, sai cosa significa la parola void in c/c++?
void nel tuo caso vuole dire solo che la funzione così definita non ritorna nulla.

danielealfa ha scritto:
Codice: Seleziona tutto
for(int i=0;i<1;i++)
{Serial.print("Ciao");} //stampa 1 volta “Ciao”


Il ciclo for cha hai scritto se non mi inganno equivale a scrivere:
Codice: Seleziona tutto
Serial.print("Ciao");

Quindi se continua a scriverlo evidentemente quel ciclo for viene richiamato di continuo dal tuo codice.

Re: stringa da eseguire solo una volta

MessaggioInviato: 31 dic 2019, 18:30
da xyz
Esegui il codice nella funzione "setup" subito dopo aver inizializzato la seriale. Se lo esegui nella funzione "loop" è ovvio che viene eseguita ad ogni interazione. Per mettere del codice eseguito una sola volta in un loop infinito bisogna conoscere bene la programmazione in C.

P.S. Comunque il titolo del thread non ha senso :?: :!: :?: