zu beginn wuste ich nicht wie ich anfangen soll, deswegen ist der Code mit der zeit gewachsen und deswegen..... sagen wir mal suboptimal.... geht aber.
Code:
$regfile = "m8535.dat"
$crystal = 4000000
'--------------------------------------
Config Porta = Output
Config Portb = Output
Config Portc.7 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Timer1 = Timer , Prescale = 256
Enable Timer1
On Timer1 Systemtakt
Enable Interrupts
Enable Timer1
Load Timer1 , 2000
'--------------------------------------
Dim Ablauf(2) As Byte
Dim Ablaufmax As Byte
Dim Ablaufalt As Byte
Dim Zaehler As Byte
Dim Auswahl(10) As Byte
Dim Status As Byte
'.0 = Timer
'.1 = Ablauf 1 = wurm vor
'.2 = Ablauf 2 = wurm rück
'.3 = Ablauf 3 = fläche
'.4 = Ablauf 4 = pfeil
'.5 = Ablauf 5 = zufall
Dim Ladewert As Word
Dim Leds As Word
'X1 -> .0
'X2 -> .1
'X3 -> .2
'X4 -> .3
'X5 -> .4
'X6 -> .5
'X7 -> .6
'X8 -> .7
'X9 -> .8
'Ebene1 -> .9
'Ebene2 -> .10
'Ebene3 -> .11
'--------------------------------------
Declare Sub Schalten()
Declare Sub Anzeige()
Declare Sub Zufall()
Declare Sub Wurm()
Declare Sub Fläche()
Declare Sub Pfeil()
Declare Sub Zufällig()
'--------------------------------------
X1 Alias Porta.0
X2 Alias Porta.1
X3 Alias Porta.2
X4 Alias Porta.3
X5 Alias Porta.4
X6 Alias Porta.5
X7 Alias Porta.6
X8 Alias Porta.7
X9 Alias Portc.7
Ebene3 Alias Portb.0
Ebene2 Alias Portb.1
Ebene1 Alias Portb.2
Ledrot Alias Portd.6
Ledgelb Alias Portd.5
'--------------------------------------
Ladewert = 2000
Status.1 = 1
Status.2 = 0
Status.3 = 0
Status.4 = 0
Status.5 = 0
Ledrot = 0
Ledgelb = 0
'######## Anfang ################################
Do
If Status.0 = 1 Then
Status.0 = 0
If Status.1 = 1 Then
Ablaufmax = 61
Incr Ablauf(1)
If Ablauf(1) >= Ablaufmax Then
Status.1 = 0
Status.2 = 1
Call Zufall
End If
Call Wurm
End If
If Status.2 = 1 Then
Decr Ablauf(1)
If Ablauf(1) <= 0 Then
Status.2 = 0
Status.3 = 1
Call Zufall
End If
Call Wurm
End If
If Status.3 = 1 Then
Ablaufmax = 19
Incr Ablauf(1)
If Ablauf(1) >= Ablaufmax Then
Ablauf(1) = 0
Status.3 = 0
Status.4 = 1
Call Zufall
End If
Call Fläche
End If
If Status.4 = 1 Then
Ablaufmax = 7
Incr Ablauf(1)
If Ablauf(1) >= Ablaufmax Then
Ablauf(1) = 0
Status.4 = 0
Status.5 = 1
Call Zufall
End If
Call Pfeil
End If
If Status.5 = 1 Then
Ablaufmax = 100
Incr Ablauf(1)
Call Zufällig
If Ablauf(1) >= Ablaufmax Then
Ablauf(1) = 0
Status.5 = 0
Status.1 = 1
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
End If
End If
End If
Auswahl(1) = Auswahl(2)
Call Anzeige
Auswahl(1) = Auswahl(3)
Call Anzeige
Auswahl(1) = Auswahl(4)
Call Anzeige
Auswahl(1) = Auswahl(5)
Call Anzeige
Auswahl(1) = Auswahl(6)
Call Anzeige
Auswahl(1) = Auswahl(7)
Call Anzeige
Auswahl(1) = Auswahl(8)
Call Anzeige
Auswahl(1) = Auswahl(9)
Call Anzeige
Auswahl(1) = Auswahl(10)
Call Anzeige
Loop
'#############################################################################
'#############################################################################
Sub Zufällig()
Incr Ablauf(2)
If Ablauf(2) >= 10 Then
Auswahl(2) = Rnd(27)
Auswahl(3) = Rnd(27)
Auswahl(4) = Rnd(27)
Auswahl(5) = Rnd(27)
End If
End Sub
'######## Wurm ##############
Sub Wurm
Ablaufmax = 61
Select Case Ablauf(1)
Case 0
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Case 1
Auswahl(2) = 1
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Case 2
Auswahl(2) = 1
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Case 3
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 0
Auswahl(5) = 0
Case 4
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 0
Auswahl(5) = 0
Case 5
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 3
Auswahl(5) = 0
Case 6
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 3
Auswahl(5) = 0
Case 7
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 3
Auswahl(5) = 6
Case 8
Auswahl(2) = 2
Auswahl(3) = 3
Auswahl(4) = 6
Auswahl(5) = 0
Case 9
Auswahl(2) = 2
Auswahl(3) = 3
Auswahl(4) = 6
Auswahl(5) = 9
Case 10
Auswahl(2) = 3
Auswahl(3) = 6
Auswahl(4) = 9
Auswahl(5) = 0
Case 11
Auswahl(2) = 3
Auswahl(3) = 6
Auswahl(4) = 9
Auswahl(5) = 8
Case 12
Auswahl(2) = 6
Auswahl(3) = 9
Auswahl(4) = 8
Auswahl(5) = 0
Case 13
Auswahl(2) = 6
Auswahl(3) = 9
Auswahl(4) = 8
Auswahl(5) = 7
Case 14
Auswahl(2) = 9
Auswahl(3) = 8
Auswahl(4) = 7
Auswahl(5) = 0
Case 15
Auswahl(2) = 9
Auswahl(3) = 8
Auswahl(4) = 7
Auswahl(5) = 4
Case 16
Auswahl(2) = 8
Auswahl(3) = 7
Auswahl(4) = 4
Auswahl(5) = 0
Case 17
Auswahl(2) = 8
Auswahl(3) = 7
Auswahl(4) = 4
Auswahl(5) = 5
Case 18
Auswahl(2) = 7
Auswahl(3) = 4
Auswahl(4) = 5
Auswahl(5) = 0
Case 19
Auswahl(2) = 7
Auswahl(3) = 4
Auswahl(4) = 5
Auswahl(5) = 14
Case 20
Auswahl(2) = 4
Auswahl(3) = 5
Auswahl(4) = 14
Auswahl(5) = 0
Case 21
Auswahl(2) = 4
Auswahl(3) = 5
Auswahl(4) = 14
Auswahl(5) = 15
Case 22
Auswahl(2) = 5
Auswahl(3) = 14
Auswahl(4) = 15
Auswahl(5) = 0
Case 23
Auswahl(2) = 5
Auswahl(3) = 14
Auswahl(4) = 15
Auswahl(5) = 18
Case 24
Auswahl(2) = 14
Auswahl(3) = 15
Auswahl(4) = 18
Auswahl(5) = 0
Case 25
Auswahl(2) = 14
Auswahl(3) = 15
Auswahl(4) = 18
Auswahl(5) = 17
Case 26
Auswahl(2) = 15
Auswahl(3) = 18
Auswahl(4) = 17
Auswahl(5) = 0
Case 27
Auswahl(2) = 15
Auswahl(3) = 18
Auswahl(4) = 17
Auswahl(5) = 16
Case 28
Auswahl(2) = 18
Auswahl(3) = 17
Auswahl(4) = 16
Auswahl(5) = 0
Case 29
Auswahl(2) = 18
Auswahl(3) = 17
Auswahl(4) = 16
Auswahl(5) = 13
Case 30
Auswahl(2) = 17
Auswahl(3) = 16
Auswahl(4) = 13
Auswahl(5) = 0
Case 31
Auswahl(2) = 17
Auswahl(3) = 16
Auswahl(4) = 13
Auswahl(5) = 10
Case 32
Auswahl(2) = 16
Auswahl(3) = 13
Auswahl(4) = 10
Auswahl(5) = 0
Case 33
Auswahl(2) = 16
Auswahl(3) = 13
Auswahl(4) = 10
Auswahl(5) = 11
Case 34
Auswahl(2) = 13
Auswahl(3) = 10
Auswahl(4) = 11
Auswahl(5) = 0
Case 35
Auswahl(2) = 13
Auswahl(3) = 10
Auswahl(4) = 11
Auswahl(5) = 12
Case 36
Auswahl(2) = 10
Auswahl(3) = 11
Auswahl(4) = 12
Auswahl(5) = 0
Case 37
Auswahl(2) = 10
Auswahl(3) = 11
Auswahl(4) = 12
Auswahl(5) = 21
Case 38
Auswahl(2) = 11
Auswahl(3) = 12
Auswahl(4) = 21
Auswahl(5) = 0
Case 39
Auswahl(2) = 11
Auswahl(3) = 12
Auswahl(4) = 21
Auswahl(5) = 24
Case 40
Auswahl(2) = 12
Auswahl(3) = 21
Auswahl(4) = 24
Auswahl(5) = 0
Case 41
Auswahl(2) = 12
Auswahl(3) = 21
Auswahl(4) = 24
Auswahl(5) = 27
Case 42
Auswahl(2) = 21
Auswahl(3) = 24
Auswahl(4) = 27
Auswahl(5) = 0
Case 43
Auswahl(2) = 21
Auswahl(3) = 24
Auswahl(4) = 27
Auswahl(5) = 26
Case 44
Auswahl(2) = 24
Auswahl(3) = 27
Auswahl(4) = 26
Auswahl(5) = 0
Case 45
Auswahl(2) = 24
Auswahl(3) = 27
Auswahl(4) = 26
Auswahl(5) = 23
Case 46
Auswahl(2) = 27
Auswahl(3) = 26
Auswahl(4) = 23
Auswahl(5) = 0
Case 47
Auswahl(2) = 27
Auswahl(3) = 26
Auswahl(4) = 23
Auswahl(5) = 20
Case 48
Auswahl(2) = 26
Auswahl(3) = 23
Auswahl(4) = 20
Auswahl(5) = 0
Case 49
Auswahl(2) = 26
Auswahl(3) = 23
Auswahl(4) = 20
Auswahl(5) = 19
Case 50
Auswahl(2) = 23
Auswahl(3) = 20
Auswahl(4) = 19
Auswahl(5) = 0
Case 51
Auswahl(2) = 23
Auswahl(3) = 20
Auswahl(4) = 19
Auswahl(5) = 22
Case 52
Auswahl(2) = 20
Auswahl(3) = 19
Auswahl(4) = 22
Auswahl(5) = 0
Case 53
Auswahl(2) = 20
Auswahl(3) = 19
Auswahl(4) = 22
Auswahl(5) = 25
Case 54
Auswahl(2) = 19
Auswahl(3) = 22
Auswahl(4) = 25
Auswahl(5) = 0
Case 55
Auswahl(2) = 19
Auswahl(3) = 22
Auswahl(4) = 25
Auswahl(5) = 0
Case 56
Auswahl(2) = 22
Auswahl(3) = 25
Auswahl(4) = 0
Auswahl(5) = 0
Case 57
Auswahl(2) = 22
Auswahl(3) = 25
Auswahl(4) = 0
Auswahl(5) = 0
Case 58
Auswahl(2) = 25
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Case 59
Auswahl(2) = 25
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Case 60
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
End Select
End Sub
'######## Fläche ######################################
Sub Fläche()
Ablaufmax = 19
Select Case Ablauf(1)
Case 0
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 1
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 3
Auswahl(5) = 4
Auswahl(6) = 5
Auswahl(7) = 6
Auswahl(8) = 7
Auswahl(9) = 8
Auswahl(10) = 9
Case 2
Auswahl(2) = 10
Auswahl(3) = 11
Auswahl(4) = 12
Auswahl(5) = 13
Auswahl(6) = 14
Auswahl(7) = 15
Auswahl(8) = 16
Auswahl(9) = 17
Auswahl(10) = 18
Case 3
Auswahl(2) = 19
Auswahl(3) = 20
Auswahl(4) = 21
Auswahl(5) = 22
Auswahl(6) = 23
Auswahl(7) = 24
Auswahl(8) = 25
Auswahl(9) = 26
Auswahl(10) = 27
Case 4
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 5
Auswahl(2) = 1
Auswahl(3) = 4
Auswahl(4) = 7
Auswahl(5) = 10
Auswahl(6) = 13
Auswahl(7) = 16
Auswahl(8) = 19
Auswahl(9) = 22
Auswahl(10) = 25
Case 6
Auswahl(2) = 2
Auswahl(3) = 5
Auswahl(4) = 8
Auswahl(5) = 11
Auswahl(6) = 14
Auswahl(7) = 17
Auswahl(8) = 20
Auswahl(9) = 23
Auswahl(10) = 26
Case 7
Auswahl(2) = 3
Auswahl(3) = 6
Auswahl(4) = 9
Auswahl(5) = 12
Auswahl(6) = 15
Auswahl(7) = 18
Auswahl(8) = 21
Auswahl(9) = 24
Auswahl(10) = 27
Case 8
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 9
Auswahl(2) = 19
Auswahl(3) = 20
Auswahl(4) = 21
Auswahl(5) = 22
Auswahl(6) = 23
Auswahl(7) = 24
Auswahl(8) = 25
Auswahl(9) = 26
Auswahl(10) = 27
Case 10
Auswahl(2) = 10
Auswahl(3) = 11
Auswahl(4) = 12
Auswahl(5) = 13
Auswahl(6) = 14
Auswahl(7) = 15
Auswahl(8) = 16
Auswahl(9) = 17
Auswahl(10) = 18
Case 11
Auswahl(2) = 1
Auswahl(3) = 2
Auswahl(4) = 3
Auswahl(5) = 4
Auswahl(6) = 5
Auswahl(7) = 6
Auswahl(8) = 7
Auswahl(9) = 8
Auswahl(10) = 9
Case 12
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 13
Auswahl(2) = 3
Auswahl(3) = 6
Auswahl(4) = 9
Auswahl(5) = 12
Auswahl(6) = 15
Auswahl(7) = 18
Auswahl(8) = 21
Auswahl(9) = 24
Auswahl(10) = 27
Case 14
Auswahl(2) = 2
Auswahl(3) = 5
Auswahl(4) = 8
Auswahl(5) = 11
Auswahl(6) = 14
Auswahl(7) = 17
Auswahl(8) = 20
Auswahl(9) = 23
Auswahl(10) = 26
Case 15
Auswahl(2) = 1
Auswahl(3) = 4
Auswahl(4) = 7
Auswahl(5) = 10
Auswahl(6) = 13
Auswahl(7) = 16
Auswahl(8) = 19
Auswahl(9) = 22
Auswahl(10) = 25
Case 16
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 17
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 18
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 19
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
End Select
End Sub
'######## Pfeil ################################################
Sub Pfeil()
'If Status.4 = 1 Then
Ablaufmax = 7
Select Case Ablauf(1)
Case 0
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 1
Auswahl(2) = 5
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 2
Auswahl(2) = 14
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
Case 3
Auswahl(2) = 23
Auswahl(3) = 1
Auswahl(4) = 2
Auswahl(5) = 3
Auswahl(6) = 6
Auswahl(7) = 9
Auswahl(8) = 8
Auswahl(9) = 7
Auswahl(10) = 4
Case 4
Auswahl(2) = 10
Auswahl(3) = 11
Auswahl(4) = 12
Auswahl(5) = 15
Auswahl(6) = 18
Auswahl(7) = 17
Auswahl(8) = 16
Auswahl(9) = 13
Auswahl(10) = 0
Case 5
Auswahl(2) = 19
Auswahl(3) = 20
Auswahl(4) = 21
Auswahl(5) = 24
Auswahl(6) = 27
Auswahl(7) = 26
Auswahl(8) = 25
Auswahl(9) = 22
Auswahl(10) = 0
Case 6
Auswahl(2) = 0
Auswahl(3) = 0
Auswahl(4) = 0
Auswahl(5) = 0
Auswahl(6) = 0
Auswahl(7) = 0
Auswahl(8) = 0
Auswahl(9) = 0
Auswahl(10) = 0
End Select
End Sub Pfeil()
'######## Anzeige ################################
Ich freue mich schon auf meinungen
Übrigens:
kann man mit Target die einzelnen Busleitungen Beschriften?
Lesezeichen