bool func()
{
if( (p2 > p1 - p1/10.0) && (p2 < p1 + p1/10.0) )
{
}
else
{
return false;
}
if(z == 5)
{
}
else
{
return true;
}
return true;
}
if(func() == true)
{
}
else
{
}
So ähnlich. Wichtig dabei ist dass jeder Weg im Code einen return-Wert zurückgegeben muss. Deshalb das "return true" am Ende wenn b beide Bedingungen "true" sind. Wenn mehr als zwei Rückgabe-Zustände gebraucht werden kann man auch ein Byte zurückgeben und dann auf eine Zahl abfragen.
Wenn du solange etwas machen willst bis eine bestimmte Bedingung eintritt geht das aber auch einfach mit einer while-Schleife. z.B. kannst du solange die Funktion aufrufen bis sie "true" zurückgibt (while(func() == false {}). Das machst du wenn "z == 5". Ansonsten gibst du "false" zurück.
Aber ist das nicht unnötig? Wenn du einen Taster entprellen willst kannst du einfach nach der ersten Abfrage mit digitalRead() ein kurzes Delay machen. 10-20ms reichen da. So super genau muss das nicht sein. Es gibt auch eine Library dafür:
http://playground.arduino.cc//Code/Bounce