Richiamare un pezzo di programma

Ciao a tutti , volevo sapere se c'è un modo da poter definire un pezzo di programma da fare un modo da essere richiamato in un secondo momento , esempio sto facendo un display dove segna la temperatura e fa scorrere delle scritte nella riga sottostante e a seconda di quello che voglio fare apparire nel ciclo del programma mi tocca riscrivere tutte le funzioni una ad una , come posso richiamare un pezzo di programma ? Si può? Grazie mille in anticipo

Si chiamano funzioni o procedure.

void loop()
{   int x=digitalRead(13);
    miafunz();   // qui esegue tutte le istruzioni contenute in miafunz 
    x=digitalRead(12);
   ...
}

void miafunz()
{  ... codice
}

Se però la "miafunz" deve essere eseguita contemporaneamente ad una altra funzione allora è un altro discorso.

Come dice nid, con le funzioni. Esse posso essere semplici richiami, oppure puoi passare loro dei paramentri, o loro posso ritornare dei valori.

Semplice richiamo di parte di codice:

void funzione(){
//ciò che devo fare
}

se ti servono dei paramentri per il codice che devi eseguire nella funzione:

void funzione(int x, int y){
// ciò che devo fare
}

x e y sono variabili visibili solo all'inetrno della funzione

...
int x=4;    //  x vale 4
funzione(2, 6);
...
void funzione(int x, int y){
// ciò che devo fare
// qui x vale 2, perchè diversa dalla x che vale 4
}

Se la funzione deve ritornare qualcosa:

int funzione(){
//ciò che devo fare
return valore;
}

Questa immagine è già più esaustiva

Ma meglio che leggere la pagina del Reference, relativa alle funzioni non c'è nulla. ;)

Brado: Ma meglio che leggere la pagina del Reference, relativa alle funzioni non c'è nulla. ;)

NO, meglio è prendersi un bel libro di C e [u]studiaselo[/u] !!! :smiling_imp: :smiling_imp: :smiling_imp:

@ Mattia82: Puoi cominciare con QUESTO e puoi scaricarti QUESTO libro (... tranquillo, è un sito legale, purché per esclusivo uso PERSONALE).

Guglielmo

Ok grazie mille ragazzi farò un po' di prove intanto scarico il libro! Vi aggiornerò Tnx!!! :)

Sono interessanti anche le funzioni ricorsive, cioè quelle che chiamano se stesse fino a che il compito non è stato concluso.

triac60: Sono interessanti anche le funzioni ricorsive, cioè quelle che chiamano se stesse fino a che il compito non è stato concluso.

Non complicare la vita di un principiante. Funzioni che richiamano se stessi sono una fonte perfetta di Arduini bloccati senza poi sapere il perché.

Ciao Uwe

Già, perché la ricorsione genera un sacco di dati da salvare nello stack, e questo riempie velocemente la RAM andando a sovrascrivere lo spazio dedicato alle variabili, con blocchi e reset. Meglio l'iterazione della ricorsione, sulle MCU con limitate risorse.

Avete ragione, mi riferivo piu che altro alla programmazione in genere, giusto per completare l'argomento, chiedo scusa, dimenticate la ricorsione e i libroni di C, con arduino serve veramente ben poco da sapere rispetto al mondo dei PC.