Hallo nochmal,
ich hab jetzt endlich die Lösung:
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.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
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







Zitieren

Lesezeichen