Problem mit Zufalls Tabelle (Atmega32)
Hallo,
ich möchte gerne eine Zufalls Tabelle, für einen Led Cube erzeugen.
Es sollen also immer zufällig irgendwelche Led's leuchten.
Meine Idee ist diese:
Code:
$regfile = "m32def.dat"
$hwstack = 32
$swstack = 10
$framesize = 40
$crystal = 8000000
'----------------------------------------------------------------------------------
Ddra = 11111111 'Ausgänge setzten
Ddrb = 00001111
Ddrc = 01111111
Ddrd = 10000000
'----------------------------------------------------------------------------------
'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 I As Byte
Dim Random(64) As Byte
Dim Dauer2 As Word
'---------------------------------------------------------------------------------
'Hauptschleife
Do
Maxbild = 12 '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 27 'Dauer des Bildes
For Ebene = 0 To 3 'Anzahl der Ebenen (bei mir 4)
'----------------------------------------------------------------------------------
Datentabelle = Bild * 16 'Berechnen der Tabelle
Temp = Ebene * 4
Datentabelle = Datentabelle + Temp
'---------------------------------------------------------------------------------
'Ausgabe des Bildes
Porta = Lookup(datentabelle , Muster)
Datentabelle = Datentabelle + 1
Portb = Lookup(datentabelle , Muster)
Datentabelle = Datentabelle + 1
Portc = 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 = Maxbild Then
Exit For
End If
Next Bild
'Ende der vor eingestellten Bilder
'--------------------------------------------------------------------------------------------
'Anfang Zufalls Schleife
For Dauer2 = 0 To 1000 'Ein Vorläufiger Wert, wie lang die Zufalls schleife laufen soll
'-----------------------------------------------------------------------------------------
'Dem Array wird ein Zufalls bit übergeben
For I = 1 To 64
Random(i) = Rnd(1)
If I = 64 Then Exit For
Next I
'---------------------------------------------------------------------------------------
'Ausgabe des Bildes
For Dauer = 0 To 27
For Ebene = 0 To 3
Temp = Ebene * 4
Porta = Lookup(temp , Rand)
temp = temp + 1
Portb = Lookup(temp , Rand)
Temp = Temp + 1
Portc = Lookup(temp , Rand)
Temp = Temp + 1
Portd = Lookup(temp , Rand)
If Ebene = 3 Then Exit For
Next Ebene
If Dauer = 27 Then Exit For
Next Dauer
If Dauer2 = 1000 Then Exit For
Next Dauer2
'Ende der Zufalls schleife
'------------------------------------------------------------------------------------------
Loop
End
'---------------------------------------------------------------------------------------------
'Hier nun mein Problem, gibt es eine Möglichkeit die Variablen aus dem Array so in die Tabelle zu geben?
Rand:
Data &B&RANDOM(1)0000000 , &B00000001 , &B00001000 , &B00000000
Data &B00000000 , &B00000000 , &B00010000 , &B00000000
Data &B00000000 , &B00000000 , &B00100000 , &B00000000
Data &B00000000 , &B00000000 , &B01000000 , &B00000000
'-------------------------------------------------------------------------------------------
Muster: 'Bilder die Ablaufen sollen
$include "muster.txt"
Was meint ihr?
Ist es möglich das so irgendwie so hin zu bekommen, oder bin ich auf dem Holzweg?
Gruß
Lars
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Gut finde ich den Ansatz mit der Taste-gedrückt-Zeit als Startwert.
Leider habe ich keinen Start Taster...
Muss ich unbedingt ein positives Signal am ADC Eingang haben oder kann dies auch von der Masse der Schaltung sein?
Ansonsten kann ich noch multigeplexte Ausgänge vom Atmega 32 anbieten.
Hier mal die Platine(An X1 wir ein Einschalter angeschlossen), glaube aber das nützt nichts...
Anhang 24428