mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zufallsgenerator in Assembler


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi!
ich hoffe jemand kann mir weiter helfen?!?!

und zwar soll ich ein sensorspiel mit hilfe eines aduc boards
entwickeln! das sensor spiel soll folgendermaßen funktionieren: ich
habe 5 led's und 5 dazugehörige schalter bzw. taster! der
zufallsgenerator soll nun einen wert ausgeben und die dazu gehörige led
soll aufleuchten, dann bestätige ich den taster von der aufleuchtenden
led.....dann soll die led wieder erlischen! danach läuft der
zufallsgenerator wieder an....nun soll er die davor aufleuchtenede led
nochmals anzeigen und dazu soll noch eine weitere von den 5 leds
aufleuchten, die betätige ich nun auch wieder usw.!!  der ablauf soll
folgendermaßen sein:

1. der zufallsgenerator läuft und gibt dann einen wert aus
2. die zu dem wert gehörige led leuchtet auf
3. die led bestätige ich durch den dazugehörigen taster
4. der wert muss irgendwie gespeichert werden
5. led erlischt und zufallsgenerator läuft erneut an
6. zufallsgenerator stoppt und gibt den vorherigen wert nochmals aus
und dazu soll er noch einen weiteren wert anzeigen
7. dann muss man wieder beide aufleuchteneden leds durch die
dazugehörigen taster bestätigen
8. zufallsgenerator läuft erneut an
9. zufallsgenerator stoppt wieder und zeigt beide zuvor aufleuchtenden
leds wieder an und dazu noch eine weiter led
10. die 3 leds bestätigen usw.


nun stehe ich vor dem problem.....wie mache ich das??? ich hatte
vielleicht gedacht, das rauschen eines transistors mit einzubinden, nur
wie binde ich dann diesen transistor mit in das programm ein? oder gibt
es vielleicht noch andere möglichkeiten??


ich hoffe ihr könnt mir helfen!!


vielen dank schon einmal im voraus!!

gruß patrick

Autor: uboot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

am Einfachsten ist es wahrscheinlich zu zählen wie oft eine Taste
prellt ... oder die Zeit die vergeht bis die Taste gedrückt wird ...

Gruß

UBoot-Stocki

Autor: Schubi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das gute alte Senso-Spiel von MB :-)
Ich hab das Spiel auch mal nachprogrammiert mit einem PIC.
Als besonderes Schmankerl kam dann auch noch eine Spielstufe mit zwei
LEDs gleichzeitig dazu.
Vielleicht interessiert jemand ja der Quelltext (wahrscheinlich sehr
unübersichtlich, eines meiner ersten Versuche in Assembler).
Foto ist auch dabei.
Bei Bedarf muss ich mal nach dem Schaltplan suchen (einzige
Besonderheit der Schaltung: deaktiviert sich nach einem einstellbaren
Zeitraum selbst, zwecks Stromsparens).

Autor: Thomas Strauß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Patrick,

ich würde einen pseudostochastischen Zufallsgenerator programmieren für
einen Prozessor/Mikrocontroller oder ein
Schieberegister+Exclusiv-Oder-Gatter einsetzen.

Ohne Prozessor: 65Bit-Schieberegister (zusammengesetzt aus 64Bit+1Bit
aus der Standard-HCMOS-Serie HC74HCXXXX)oder CMOS 4031

der Ausgang des 64bit-Schieberegisters liegt am Eingang des
1-Bit-Schieberegisters (nur 1 Flip-Flop, Baustein 4006 oder ähnlich)

der Ausgang des 1-Bit-Schieberegisters liegt am ersten Eingang eines
Exclusiv-Oder-Gatters, der Ausgang des 64bit - Schieberegisters liegt
am anderen Eingang des Exclusiv-Oder-Gatters

der Ausgang des Exclusiv-Oder-Gatters liegt am Eingang des
64bit-Schieberegisters

Es liegt also ein Ring-Schieberegister mit 65 Flip-Flop (eines kann 1
Bit speichern, d.h. insgesamt 65Bit)

die letzten beiden Bits werden Exclusiv-Oder verknüpft und der Ausgang
des letzten Flip-Flops ist mit dem Eingang des ersten verbunden

die Schaltung, die ich mal mit einem 4031 und einem 4006 (alte
CMOS-Serie) aufgebaut hatte, gab eine gute Rauschquelle ab, wenn die
Initialisierung der Bitkette gut war. Das ist etwas problematisch - bei
jedem pseudostochastischen Zufallgenerator!

Ich unterbrach die Rückkopplung zum ersten Flip-Flop und berührte den
Eingang mit einem Finger mehrmals. Dann schloß ich wieder die
Rückkopplung und hatte dann ein perfektes Rauschen (weißes Rauschen).

In deinem Fall müsste man die Schaltung derart abändern, daß innerhalb
der Bitkette ein 8bit-Seriell zu Parallel - Schieberegister einzubauen
wäre; nach Anlegen eines passenden Pegels an diesen Chip werden dann 8
Bits an 8 Ausgängen zum Ablesen bereit gestellt; an 5 von diesen können
z.B. LEDs angeschlossen werden...

Ein MCU-Programm macht im Prinzip dasselbe wie die Hardware-Variante:

eine Menge Bits werden im Kreise rotiert (über Akku + Carry-Bit +
Speicher) und zwei dieser Bits dieser Bitkette werden mit einem
Exclusiv-Oder-Befehl verknüpft; das Resultat wird wieder in den Anfang
der Bitkette geschoben; 5 Bits aus dieser Bitkette müssen dann an
Portpins ausgegeben werden. Am Anfang ist wieder das Problem - eine
Initialisierung der Bitkette muß so sein, das ein möglichst perfektes
Rauschen entsteht (Aktiv-Box an Portpin anschließen und testen)

Gruß Thomas

Autor: nestandart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.tuhh.de/~setb0209/cpu/avrlfsr.html

http://www.dvanhorn.org/AvrSoftware/

und ich werde es tun:

einen zener diode -> verstärker -> bin-zähler -> PORTB

Autor: nestandart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, noch was...

IN R16,T0CNT

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.