$crystal ist NICHT der Oszillator!
hat auch niemand behauptet. Der Oszillator im AVR (Fusebits) steht auf 2Mhz wie im Programm selbst auch. Die Formel ist richtig, wie du selbst rausgefunden hast. Ok das mit den 95 stimmt natürlich. Mein Fehler.

In der Displayroutine:

If Displaywarten = 50 Then
Locate 1 , 1 : Lcd "Durchfluss:"
Locate 2 , 1 : Lcd Durchfluss ; " L/h " ; Tempword ; " "
Displaywarten = 0
End If

Lass ich mir nach L/h den Wert "Tempword" anzeigen. Der wird in

Tempword = Tempword + Tempword1

als letztes Berechnet und sollte Theoretisch den Timerwert darstellen. Auf dem Display steht aber immer nur 31 bzw. 32 egal bei welchem Durchfluss. Ich bin Ratlos...

Zudem liegt der Messfehler ja im Bereich von über 30%. So viel kann ein Oszillator doch nicht falsch gehen oder?