Creazione di funzioni o simili

Salve a tutti,
ho un problema di programmazione che a causa dei miei scarsi rudimenti, non riesco a risolvere, =(
in parole povere, ho bisogno di trasformare una parte del mio codice in una funzione o qualcosa di simile in modo che passandogli più variabili alla fine dell’esecuzione della funzione io abbia le variabili aggiornate e possa usare la stessa funzione per altre variabili ancora, in pratica una cosa simile a questa:

int Asettore1, Bsettore1, Csettore1, Dsettore1;
int Asettore2, Bsettore2, Csettore2, Dsettore2;
int Asettore3, Bsettore3, Csettore3, Dsettore3;

void impostasettori (int A, int B, int C, int D)
  {
     acquisico / elaboro A, B, C, e D;
   }

void loop()
{

     impostasettori (Asettore1, Bsettore1, Csettore1, Dsettore1);

     impostasettori (Asettore2, Bsettore2, Csettore2, Dsettore2);

     impostasettori (Asettore3, Bsettore3, Csettore3, Dsettore3);

}

Scusate se ho semplificato eccessivamente, spero però di essermi spiegato.

Di fatto ho scritto il codice funzionante, ma quando ho provato trasformarlo in funzione, malgrado nessun errore di compilazione, a smesso di funzionare, qualcuno mi sa aiutare?
Oppure sapete dove posso trovare informazioni per eseguire in modo corretto quello che mi sono prefisso?
Ho cercato nel forum, ma non ho trovato nulla di utile, e se c’era era in lingua straniera ed io a mala pena leggo l’italiano…

Grazie Riccardo :slight_smile:

quello che vuoi fare è possibile, e si fa esattamente come hai scritto, se vuoi che i 4 valori vengano elaborati nella funzione(impostasettori) MA rimangano immutati nella funzione chimante(loop)

ma da quello che ho capito tu vuoi che i 4 valori vengano modificati: in quel caso si usano i puntatori. Devi passare non il valore delle variabile, ma il suo indirizzo, e poi tramite puntatore, dalla funzione puoi modificare il valore della variabile puntatta in modo che la modifica si rifletta sul valore originario.

Ciao lesto,
confesso che contavo su un tuo reply XD, ti ho letto altre volte proprio su questioni di programmazione...

si in effetti ho bisogno che i valori delle variabili settore cambino, in modo poi che con un'altra funzione io usi i valori impostati per far lavorare ogni settore con i nuovi parametri, il fatto è che non so di cosa parli quando citi i puntatori :~, puoi essere più esplicito, oppure sai dove posso trovare spiegazioni, learning e/o esempi a cui possa rifarmi?

Grazie Riccardo.

Ciao lesto,
confesso che contavo su un tuo reply smiley-lol, ti ho letto altre volte proprio su questioni di programmazione...

:blush:

si in effetti ho bisogno che i valori delle variabili settore cambino, in modo poi che con un'altra funzione io usi i valori impostati per far lavorare ogni settore con i nuovi parametri, il fatto è che non so di cosa parli quando citi i puntatori smiley-confuse, puoi essere più esplicito, oppure sai dove posso trovare spiegazioni, learning e/o esempi a cui possa rifarmi?

sono il punto più importante del linguaggio C, e anche la cosa più ostica a quanto pare. http://programmazione.html.it/guide/lezione/1105/i-puntatori/

Grazie lesto,
mi metto a studiare e a fare un po' di prove, spero di riuscire...
sei stato prezioso.

Riccardo.

P.S. E' strano che uno strumento di programmazione così potente e utile, non venga mai usato in nessun tutorial di arduino, da diversi mesi infatti colto dalla sindrome del criceto, ho usato i miei hard disk come se fossero le mie guance, riempiendoli di learnig, tutorial, manuali e quant'altro, ma di sti puntatori mai l'ombra... :relaxed:

Ma scusate, invece di impazzire con i puntatori perché non mettere le variabili come globali? sarà meno elegante, ma funziona..

perchè è la maniera migliore per impararli, e ti risparmi un sacco di sbattimenti dopo.
un uovo oggi o una gallina domani?

Ciao a tutti,
ma soprattutto grazie a lesto XD,
ho studiato, applicato e fatto funzionare la mia prima funzione con i puntatori e incredibilmente funziona :blush:,
è molto terra terra, ma mi è servita molto per impararne la logica, il tuo link mi è stato utilissimo.

Grazie ancora Riccardo

lollotek:
Ma scusate, invece di impazzire con i puntatori perché non mettere le variabili come globali? sarà meno elegante, ma funziona..

Perché se usi i puntatori puoi usare la funzione per tutti le variabili che vuoi. Se non usi i puntatori funziona solo per le variabili che hai scritto nella funzione.

Ciao Uwe