Hallo Holger,

gibt es denn in Bascom keine möglichkeit, die interpolation für eine lookup tabelle automatisch durchführen zu lassen?
... doch, das ist doch die Möglichkeit 1. aus meinem Post!

Hier 'mal ein bißchen Code als Beispiel:
Code:
Dim Temp As Byte
Dim Ausgabe As Word , Ausgabe2 As Word
Dim Volt As Single
Dim S As String * 16
Dim Summ As Word
Dim Index As Word , Index2 As Word

'50 ADC-Messungen der geglätteten PWM über 1 Zyklusdauer (max. 101ms):
  Summ = 0
  For Temp = 1 To 50
    Ausgabe = Irdistanz_lv                                  'ADC0: PWM (DC)
    Summ = Summ + Ausgabe
    Waitms 2                                                'alle 2ms
  Next Temp
  Summ = Summ / 50                                          '50 Messungen
  If Summ < 15 Then Summ = 15

'Anfang der Tabellensuchschleife:
  Index = 1
  Do
    Ausgabe2 = Lookup(index , Adcdata)
    If Summ < Ausgabe2 Then
      Index2 = Index - 1
      Ausgabe = Lookup(index2 , Adcdata)
      Volt = Ausgabe2 - Ausgabe
      Volt = Volt / 10
      Exit Do
    End If
    Index = Index + 1
  Loop Until Index > 36
  If Index = 37 Then
    Volt = 3599
  Else
    Ausgabe2 = Summ - Ausgabe
    Volt = Volt * Ausgabe2
    Ausgabe = Index2 * 10
    Volt = Volt + Ausgabe
    Volt = Volt * 10
  End If
  Ausgabe = Volt
  Locate 4 , 1
  S = Str(ausgabe)
  S = Format(s , "000.0")
  Lcd "Dpw: " ; S ; " Grad"
')
  Waitms 500

Loop

'Programm Ende:

End

'ADC-Messwerte für 0..360 Grad Peilung in 10 Grad-Schritten:
Adcdata:
Data 15% , 30% , 44% , 57% , 71% , 84% , 98% , 110% , 123% , 135% , 147%
Data 158% , 168% , 179% , 190% , 200% , 209% , 219% , 228% , 237% , 246%
Data 255% , 264% , 272% , 280% , 288% , 297% , 305% , 312% , 319% , 327%
Data 334% , 341% , 348% , 355% , 362% , 370%
Da habe ich einen CMPS03 (I2C-Kompass-Modul) nach Glättung der PWM mit einem ADC ausgelesen. (Das ist im Prinzip völlig unnötig, da man ja den I2C-Wert hat! Ich wollte aber 'mal sehen, ob das geht.)
Die Meßwerte stehen in der Tabelle Adcdata:
Der Code findet auch die Zwischenwerte der Tabelle unter der Annahme, dass die Intervalle linear sind. Lass dich nicht durch merkwürdige Variablennamen irritieren, z.B. Volt (wird im Programm auch noch für eine Spannung verwendet).
Es geht um die Suchschleife, wobei ich zugebe, dass sie nicht unbedingt selbsterklärend oder elegant ist. Jedenfalls gibt das Prog abhängig vom ADC-Wert (in Summ, Werte 15..370) die Himmelsrichtung als 0..3599 (dargestellt als 000.0 .. 359.9) aus.
Vielleicht kannst du daraus ja eine eigene Routine für deine Anwendung basteln! Zum Testen der Routine (ohne ADC) kannst du z.B. den Teil mit der "Suchschleife" in eine for...next Schleife von 15 bis 370 (FOR Summ = 15 To 370) tun und dir die Ausgabe auf dem LCD ansehen.

Gruß Dirk