Hast du dir denn mal die Lookup() Funktion angesehen?
Sieht dann so aus:
Erklärung siehe mein Post oben.Code:$regfile "m8def.dat" $crystal = 1000000 $baud = 1200 Dim Ad As Word dim ergebnis as Byte, index as word Config Portb = Output Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Do Ad = Getadc(0) if ad < 679 then ergebnis=100 elseif ad > 1021 then ergebnis=0 elseif ad > 970 then ergebnis=10 else Index = AD - 679 'Vom AD-Wert ziehst du zunächst mal 680 ab, weil die Werte dadrunter immer 100 ergeben. 'Dann bleiben Werte von 0 bis 291 über. Mit Ergebnis = Lookup(Index, Zeit_daten) endif Print " ";Ergebnis;" s" 'gibst du den Wert aus. loop end Zeit_daten: Data 99, 99, 99 'Daten für 679, 680, 681 Data 98 'Daten für 682 ... Data 11, 11, 11, 11 'Daten für 967, 968, 969, 970
Ich denke übrigens, der Bereich von 921 - 926 soll tatsächlich 20s sein, nicht 21s.







Zitieren

Lesezeichen