Stufe 15 wird nie angesteuert.
Code:
If Timecount = Geschwindigkeitll Then
Incr Lednr
Timecount = 0
End If
If Lednr = 15 Then
Lednr = 0
End If
Select Case Lednr
Case 1 : Gosub Stufe1
Case 2 : Gosub Stufe2
Case 3 : Gosub Stufe3
Case 4 : Gosub Stufe4
Case 5 : Gosub Stufe5
Case 6 : Gosub Stufe6
Case 7 : Gosub Stufe7
Case 8 : Gosub Stufe8
Case 9 : Gosub Stufe9
Case 10 : Gosub Stufe10
Case 11 : Gosub Stufe11
Case 12 : Gosub Stufe12
Case 13 : Gosub Stufe13
Case 14 : Gosub Stufe14
Case 15 : Gosub Stufe15
End Select
Wenn immer nur eine Stufe leuchten soll, würde es auch per Schieberegister gehen, wo immer nur Bit geschoben wird.
Z. B.
Code:
$regfile = "m8def.dat"
$crystal = 4000000
Dim Geschwindigkeitll As Byte
Geschwindigkeitll = 40 '40x25ms =1 Sek.
Dim Timecount As Word
Timecount = 1
Dim Lednr As Word
Config Dcf77 = Pind.5 , Timer = 1 , Gosub = Sectic 'DCF-Uhr Routine, lässt sich auch mit einem 4MHZ Quarz ohne DCF-Empfänger nutzen
Pin Alias Portd.6 'Angenommen der DataPIN
Pclock Alias Portd.7 'Angenommen, der ClockPIN
Lednr = 1
Do
Gosub Lauflicht
Loop
End
Lauflicht:
If Timecount = Geschwindigkeitll Then
If Lednr = 32768 Then 'nur 15 Stufen, daher auf die Erste springen
Lednr = 1
Else
Shift Lednr , Left
End If
Timecount = 0
End If
If _hour > 9 And _hour < 16 Then
Lednr = 32768
End If
Shiftout Pin , Pclock , Lednr , 0 'hier die Schieberegister mit den LEDs ansteuern
Return
Sectic:
'Uhranzeigen
Return
Lesezeichen