So hier ist mein Code:
Code:
$regfile = "m32def.dat"
$hwstack = 32
$swstack = 10
$framesize = 40
$crystal = 8000000
'----------------------------------------------------------------------------------
Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output
'----------------------------------------------------------------------------------
'Variablen setzen
Dim Bild As Word
Dim Maxbild As Word
Dim Ebene As Byte
Dim Dauer As Byte
Dim Temp As Word
Dim Datentabelle As Word
Dim Dauer2 As Byte
Dim Dauer3 As Integer
Dim Dauer4 As Byte
Dim __rseed As Word
Dim Rand(64) As Byte
Dim I As Byte
Dauer2 = 27
'---------------------------------------------------------------------------------
'Hauptschleife
Do
Maxbild = 199 'Maxbild = Anzahl der Bilder
Maxbild = Maxbild - 1 'Maxbild -1, da er bei 0 anfängt zu zählen
For Bild = 0 To Maxbild 'Bilder ablaufen
For Dauer = 0 To Dauer2 'Dauer des Bildes
For Ebene = 0 To 3 'Anzahl der Ebenen (bei mir 4)
'----------------------------------------------------------------------------------
Datentabelle = Bild * 12 'Berechnen der Tabelle
Temp = Ebene * 3
Datentabelle = Datentabelle + Temp
'---------------------------------------------------------------------------------
'Ausgabe des Bildes
Porta = Lookup(datentabelle , Muster)
Datentabelle = Datentabelle + 1
Portb = Lookup(datentabelle , Muster)
Datentabelle = Datentabelle + 1
Portd = Lookup(datentabelle , Muster)
Waitms 5
'----------------------------------------------------------------------------------------
If Ebene = 3 Then
Exit For
End If
Next Ebene
If Dauer = 27 Then
Exit For
End If
Next Dauer
If Bild = 44 Then
Dauer2 = 4
Elseif Bild = 109 Then
Dauer2 = 27
Elseif Bild = 112 Then
Dauer2 = 12
Elseif Bild = 140 Then
Dauer2 = 27
End If
If Bild = Maxbild Then
Exit For
End If
Next Bild
'Ende der vor eingestellten Bilder
'-------------------------------------------------------
'Anfang Zufallsschleife
For Dauer3 = 0 To 5000 'vorläufiger Wert wie lange die schleife laufen soll
__rseed = Pina.1 'dieser Pin soll also den Zufallswert geben, er ist allerdings auch ein Port für eine Led, geht das?
For I = 1 To 64 'Zufallswerte werdem dem Array übergeben
Rand(i) = Rnd(1)
If I = 64 Then Exit For
Next I
For Dauer4 = 0 To 27 'Dauer eines Bildes
For Ebene = 0 To 3 'Multiplex
If Ebene = 0 Then
Porta.0 = Rand(64)
Porta.1 = Rand(1)
Porta.2 = Rand(2)
Porta.3 = Rand(3)
Porta.4 = Rand(4)
Porta.5 = Rand(5)
Porta.6 = Rand(6)
Porta.7 = Rand(7)
Portb.0 = Rand(8)
Portb.1 = Rand(9)
Portb.2 = Rand(10)
Portb.3 = Rand(11)
Portd.7 = Rand(12)
Portd.6 = Rand(13)
Portd.5 = Rand(14)
Portd.4 = Rand(15)
Portd.3 = 0
Portd.2 = 0
Portd.1 = 0
Portd.0 = 1
Elseif Ebene = 1 Then
Porta.0 = Rand(16)
Porta.1 = Rand(17)
Porta.2 = Rand(18)
Porta.3 = Rand(19)
Porta.4 = Rand(20)
Porta.5 = Rand(21)
Porta.6 = Rand(22)
Porta.7 = Rand(23)
Portb.0 = Rand(24)
Portb.1 = Rand(25)
Portb.2 = Rand(26)
Portb.3 = Rand(27)
Portd.7 = Rand(28)
Portd.6 = Rand(29)
Portd.5 = Rand(30)
Portd.4 = Rand(31)
Portd.3 = 0
Portd.2 = 0
Portd.1 = 1
Portd.0 = 0
Elseif Ebene = 2 Then
Porta.0 = Rand(32)
Porta.1 = Rand(33)
Porta.2 = Rand(34)
Porta.3 = Rand(35)
Porta.4 = Rand(36)
Porta.5 = Rand(37)
Porta.6 = Rand(38)
Porta.7 = Rand(39)
Portb.0 = Rand(40)
Portb.1 = Rand(41)
Portb.2 = Rand(42)
Portb.3 = Rand(43)
Portd.4 = Rand(44)
Portd.5 = Rand(45)
Portd.6 = Rand(46)
Portd.7 = Rand(47)
Portd.3 = 0
Portd.2 = 1
Portd.1 = 0
Portd.0 = 0
Elseif Ebene = 3 Then
Porta.0 = Rand(48)
Porta.1 = Rand(49)
Porta.2 = Rand(50)
Porta.3 = Rand(51)
Porta.4 = Rand(52)
Porta.5 = Rand(53)
Porta.6 = Rand(54)
Porta.7 = Rand(55)
Portb.0 = Rand(56)
Portb.1 = Rand(57)
Portb.2 = Rand(58)
Portb.3 = Rand(59)
Portd.4 = Rand(60)
Portd.5 = Rand(61)
Portd.6 = Rand(62)
Portd.7 = Rand(63)
Portd.3 = 1
Portd.2 = 0
Portd.1 = 0
Portd.0 = 0
End If
If Ebene = 3 Then Exit For
Next Ebene
If Dauer4 = 27 Then Exit For
Next Dauer4
If Dauer3 = 5000 Then Exit For
Next Dauer3
'Ende Zufall
Loop
End
Muster: 'Bilder die Ablaufen sollen
$include "muster.txt"
Leider leuchtet in der Zufallsschleife nie eine Led
Was ist falsch?
Gruß Lars
Lesezeichen