Arduino aus Programm reseten?

Ich finde eine Mittelwertbildung über 999 Werte etwas sehr übertrieben.
Außerdem ist die Mittelwertbildung etwas kurios:
"averageTemp += ((readTemperature() - averageTemp)/(float)i); " oder anders gesagt:
mittelwert = mittelwert+ ((meßwert*-mittelwert)/i)*
Daß heißt, daß der erste Meßwert viel mehr Einfluß auf den Mittelwert hat weil er durch 1 geteilt wird, als der 999-ste Meßwert.
ist der Mittelwert nicht
mittelwert = (summe meßwert ) / 999
oder
mittelwert = mittelwert + ((meßwert*-mittelwert)/999)*
wobei i von 1 bis 999 gezählt wird.
Grüße Uwe