Hallo nochmal,

ich hab jetzt endlich die Lösung:

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

Ddrd = &B11100000
Admux = &B01100000
Adcsr = &B11101111

Config Timer0 = Timer , Prescale = 8
On Timer0 Timer_irq
Const Timervorgabe = 237
Enable Timer0
Enable Interrupts

Dim I As Byte
Dim Led1 As Byte
Dim Led2 As Byte
Dim Led3 As Byte

Dim D1 As Byte
Dim D2 As Byte
Dim D3 As Byte
Dim D4 As Byte
Dim D5 As Byte
Dim D6 As Byte
Dim D2_1 As Byte
Dim D4_1 As Byte
Dim D6_1 As Byte

Do
D1 = Adch
D2_1 = Adch - 40
D2 = Not D2_1
D3 = Adch - 80
D4_1 = Adch - 120
D4 = Not D4_1
D5 = Adch - 160
D6_1 = Adch - 200
D6 = Not D6_1

  If Adch <= 40 Then
   Led1 = 240
   Led2 = D1 * 6
   Led3 = 0
  Else
  If Adch <= 80 Then
   Led1 = D2 * 6
   Led2 = 240
   Led3 = 0
  Else
  If Adch <= 120 Then
   Led1 = 0
   Led2 = 240
   Led3 = D3 * 6
  Else
  If Adch <= 160 Then
   Led1 = 0
   Led2 = D4 * 6
   Led3 = 240
  Else
  If Adch <= 200 Then
   Led1 = D5 * 6
   Led2 = 0
   Led3 = 240
  Else
  If Adch <= 240 Then
   Led1 = 240
   Led2 = 0
   Led3 = D6 * 6
  Else
  End If
  End If
  End If
  End If
  End If
  End If
Loop

Timer_irq:
 Timer0 = Timervorgabe
 I = I + 1

 If I = 255 Then
  I = 0
 End If

 If I > Led1 Then Portd.5 = 0
 If I <= Led1 Then Portd.5 = 1

 If I > Led2 Then Portd.6 = 0
 If I <= Led2 Then Portd.6 = 1

 If I > Led3 Then Portd.7 = 0
 If I <= Led3 Then Portd.7 = 1

 Udr = Adch
Return

End
Ob das nun die Endlösung ist wage ich mal zu bezweifeln, aber es funktioniert so wie ich es will und auch so wie es im Diagramm dargestellt ist.

Wer jetzt noch Verbesserungsschläge hat - immer her damit.
Ich habe z.B. festgestellt, dass die LEDs nie ganz aus sind, sie leuchten auch bei eingestelltem 0-Wert noch ganz schwach (kaum zu sehen). Woran könnte das liegen?

Grüße und danke für eure Hilfe
Enrico