Code:
Dim Count As Byte 'oder word, falls nötig
Dim Next_led As Byte 'oder word, falls nötig
Dim Led_flag As Byte
Dim W1 As Byte , W2 As Byte , W3 As Byte
Dim Zeile As Byte , Position As Byte 'position evtl as word, falls die tabelle größer wird
On Timer0 Timer0_isr
Do
If Led_flag = 1 Then
Reset Led_flag
Incr Zeile
If Zeile = 14 Then Zeile = 0 'Annahme: wenn die 14 Zeilen durch sind geht's von vorne los
Position = Zeile * 3
W1 = Lookup(position , Tabelle) 'Dies liest die Werte 0,3,6,9 .. aus der Tabelle
Incr Position
W2 = Lookup(position , Tabelle) 'Dies liest die Werte 1,4,7,10 .. aus der Tabelle
Incr Position
W3 = Lookup(position , Tabelle) 'Dies liest die Werte 2,5,8,11 .. aus der Tabelle
End If
Loop
Timer0_isr:
Incr Count
If Count = Next_led Then 'dies so einstellen, dass alle 2 Sekunden das flag gesetzt wird
Set Led_flag
Count = 0
End If
Return
Tabelle:
' W1 , W2 , W3 , W4 , W5 , W6
Data 0 , 120 , 255
Data 20 , 140 , 240
Data 40 , 160 , 220
Data 60 , 180 , 200
Data 80 , 200 , 180
Data 100 , 220 , 160
Data 120 , 240 , 140
Data 140 , 255 , 120
Data 160 , 0 , 100
Data 180 , 20 , 80
Data 200 , 40 , 60
Data 220 , 60 , 40
Data 240 , 80 , 20
Data 255 , 100 , 0
Kompiliert ok, aber ist nicht getestet.
Lesezeichen