So habe nochmals weiter gemacht.
Habe die Berechnung jetzt in ein Sub gepackt.
Somit kann ich jetzt relativ einfach mehrere Fühler abfragen.

Habe es einfach mal mit 4 Fühlern gemacht.

Alle Werte berechnet und auf ein LCD geschrieben und 17% Ausgenutzt.
Ich denke das geht jetzt so, oder??
Oder was könnte man noch optimieren.

Was ich jetzt noch machen wollte ist das ich vor dem Aufruf des Sub Berechnung vorgeben kann welchen wert er nimmt. Also es werden unten 10 verschiedene Data Zeilen kommen. Und da soll halt der richtige gewählt werden. Kann ich bei Lookup auch eine Variable angeben.
Also anstatt dta die variable und vor dem Sub Berechnung dann einfach sagen Variable = DTA2 oder DTA3 usw usw

So das war erst mal wieder genug für heute.

Hänge den code nochmal an.

Ciao
und schönes Wochenende noch euch allen.



Code:
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600


Dim Adcwert As Integer , Volt1 As Integer , Volt2 As Integer , Volt3 As Integer , Volt4 As Integer
Dim Ist As Integer , Ist2 As Integer , Istwert As Integer
Dim Tempwert As Byte , Maxwert As Integer , Minwert As Integer , Differenz As Integer
Dim Abstand As Integer , Temperatur As Integer

Declare Sub Berechnung
Declare Sub Ausser_bereich

Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Cursor Off

Do
Cls
    Volt1 = Getadc(0)
    Volt2 = Getadc(1)
    Volt3 = Getadc(2)
    Volt4 = Getadc(3)
    Adcwert = Volt1
'    Adcwert = 400
    Berechnung
    Locate 1 , 1
    Lcd "1: " ; Temperatur
'   Adcwert = Volt2
    Adcwert = 400
    Berechnung
    Locate 1 , 10
    Lcd "2: " ; Temperatur
'    Adcwert = Volt3
    Adcwert = 500
    Berechnung
    Locate 2 , 1
    Lcd "3: " ; Temperatur
'    Adcwert = Volt4
    Adcwert = 600
    Berechnung
    Locate 2 , 10
    Lcd "4: " ; Temperatur
    Waitms 500
Loop
End


Sub Berechnung
   If Adcwert > 945 Then Goto Ende1
   If Adcwert < 179 Then Goto Ende1
   Ist = -1
   Do
      Minwert = Lookup(ist , Dta)
      Incr Ist
      Maxwert = Lookup(ist , Dta)
   Loop Until Adcwert <= Maxwert
   Tempwert = Ist * 5                                       ' Brechnung welche Temperaturgrundwert gerade gewählt ist
   Differenz = Maxwert - Minwert                            ' Differenz zwischen Maxwert und Minwert
   Abstand = Maxwert - Adcwert                              ' Abstand zwischen Grundwert zum Istwert
   Differenz = Differenz / 5                                ' Differenz durch 5 Teilen um die Analogwertänderung pro 1°C zu erhalten
   Abstand = Abstand / Differenz                            ' Abstand durch Differenz teilen um auf den Wert zu kommen der vom Grundwert abgezogen wird
   Temperatur = Tempwert - Abstand                          ' Aktuelle Temperatur Errechnung
Ende1:
End Sub



'----------------Datenzeile für 1000Ohm Vorwiderstand--------------------
'Dta:
'Data 305% , 356% , 409% , 462%, 515% , 567% , 616% , 662% , 705% , 744% , 779% , 811% , 838% , 862% , 882% , 900% , 916% , 929% , 941% , 951% , 959% , 966% , 973% , 978% , 983% ,


'----------------Datenzeile für 500 Ohm Vorwiderstand--------------------
Dta:
Data 179% , 215% , 255% , 299% , 344% , 392% , 440% , 489% , 538% , 584% , 629% , 671% , 709% , 744% , 775% , 803% , 828% , 850% , 870% , 887% , 902% , 915% , 926% , 936% , 945%,
Edit:
Ach ja und was noch fehlt ist die Abfrage wenn er kleiner als 0°C oder größer as 120°C ist, damit er dann den Wert LO oder Hi ausgibt, aber das wird ja wohl das kleinste übel sein