Hat sich schon erledigt. Habe bisher noch nicht wirklich kapiert wozu dieser Return eigentlich da ist. Übergebe den Wert nun über eine globale Variable.
Jede Funktion kann viele Eingabewerte haben aber nur einen Rückgabewert. Dies Eingabe bzw Rückgabewerte werden bei der Funktionsdefinition definiert.
zB
int (meineFunktion (int a, int b)
{
return( a+b);
}
Diese Funktion hat 2 Eingabewerte und gibt 1 zurück. a und b sind lokale Variablen die nur innerhalb der Funktion existieren.
Aufgerufen wird die Funktion:
Summe = meineFunktion ( 10 , 2);
Im Arduino-Bereich werden Zeiger kaum verwendet obwohl Zeiger das Standartmittel bzw der gute Ton sind um Daten an Funktionen zu übergeben (und eben keine Globalen Variablen). Zeiger sind eigentlich die "Speicheradresse" der Variable obwohl der Wert des Zeigers an sich nichts signifikantes aussagt.
Beim guten Ton in C übergibt man an die Funktion die Zeiger der zu verwendenden Variablen und die Funktion verändert die Werte der Variablen durch ihren Zeiger. Als Rückgabewert wird ein Statusinfo gegeben. "-1" zB bedeutet daß ein Fehler in der Ausführung der Funktion aufgetreten ist.
Achtung:
In C ist es möglich Funktionen mit gleichem Namen aber verschiedener Anzahl von Eingabewerten zu haben. Das sind dann 2 verschiedene Variablen und es wird immer die Ausgeführt die den übergebenen Wertenanzahl entspricht.
Du kennst das zB von optinalen Timeout- wert bei pulseIn() und ähnliches.