Hast du dir denn mal die Lookup() Funktion angesehen?
Sieht dann so aus:
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
Erklärung siehe mein Post oben.
Ich denke übrigens, der Bereich von 921 - 926 soll tatsächlich 20s sein, nicht 21s.