Hi!
Ich habe das Problem, dass zwei neue Sensoren von meinem Mega8 so einiges an Rechenleistung bzw. Speicherplatz abverlangen.
Es handelt sich hier um einen Lufttemperatur und -druck Sensor und einen Luftfeuchte Sensor.

Beim Druck/Temperatur Sensor müssen aus einem integrierten ROM elf Variablen ausgelesen werden und die eigentlichen Werte damit verrechnet werden.

Code:
'Dim C(7) As Word, A(4) As Byte, Vas(3) As Single, Var(1) As Word, D2cs As Long

Function Dut(byval D2 As Word)        'As Integer

   D2c5 = D2 - C(5)
   Vas(1) = D2c5 * D2c5
   Vas(2) = Vas(1) / 16384
   Var(1) = 2 ^ A(3)

   If D2 < C(5) Then                                        
      Vas(2) = Vas(2) * A(2)
      Vas(2) = Vas(2) / Var(1)
      Vas(2) = D2c5 - Vas(2)
      Dut = Vas(2)
   Elseif D2 >= C(5) Then
      Vas(2) = Vas(2) * A(1)
      Vas(2) = Vas(2) / Var(1)
      Vas(2) = D2c5 - Vas(2)
      Dut = Vas(2)
   End If

End Function

Function Dbr(byval D1 As Word , Dutb As Integer)     'As Word

   Local Offset As Integer
   Local Sens As Integer
   Local Xb As Integer

   Var(1) = C(4) - 1024
   Vas(1) = Var(1) * Dutb
   Vas(1) = Vas(1) / 16384
   Vas(1) = Vas(1) + C(2)
   Vas(1) = Vas(1) * 4
   Offset = Vas(1)

   Vas(1) = C(3) * Dutb
   Vas(1) = Vas(1) / 1024
   Vas(1) = Vas(1) + C(1)
   Sens = Vas(1)

   Vas(1) = D1 - 7168
   Vas(1) = Vas(1) / 16384
   Vas(1) = Sens * Vas(1)
   Vas(1) = Vas(1) - Offset
   Xb = Vas(1)

   Vas(1) = Xb * 10
   Vas(1) = Vas(1) / 32
   Vas(1) = Vas(1) + C(7)
   Dbr = Vas(1)

End Function

Function Tbr(dutb As Integer)        'As Integer

   Vas(1) = Dutb * C(6)
   Vas(1) = Vas(1) / 65535
   Vas(2) = 2 ^ A(4)
   Vas(2) = Dutb / Vas(2)
   Vas(3) = Vas(1) - Vas(2)
   Vas(3) = 250 + Vas(3)
   Tbr = Vas(3)

End Function
Diese drei Funktionen brauchen bestimmt 40-50% vom Flash des Mega8 und die Berechnung dauert auch ne ganze Weile. Da ich gerne noch ein paar andere Sensoren und eine Funkübertragung einbauen wollte, brauche ich mehr Platz.
Wie kann ich also am besten die Rechnungen umstellen, verändern, durch andere Rechenoperationen schlanker gestalten? Sind Local-Variablen hier besser geeignet als "Globale"?

Danke!
Basti