www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zufallszahl PIC16F84


Autor: volkan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgendes problem:

Wir müssen als abschlussprojekt für die schule einen microcontroller
(PIC 16F84) programmierein.
Und zwar:

Wir sollen 6aus45 (Lotto mit 6+1 zufallszahlen) auf einem LCD display
ausgeben, hardware mäßig kein problem, aber die zufallszahl macht uns
einfach zu schaffen, habe bereits lange gesucht, aber bis her nichts
gefunden, und daher hier im forum  unser versuch.
Per taster soll die ziehnung gestartet werden und die 6+1 zahlen
nacheinander auf dem display angezigt werden. Random funktion gibt’s
leider keine, also sollte die zufallszahl wahrscheinlich mittels timer
konstruiert werden!
Um jede Hilfe dankbar, wir haben nämlich nicht mehr viel zeit!!!!
Gruß

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass doch einfach den Timer0 den Systemtakt zählen und lies den
Zählerstand beim Tastendruck aus. Da der Tastendruck zu einem
zufälligen Zeitpunkt auftritt ist auch der Zählerstand zufällig.
Muß man halt sieben Mal drücken...

Uwe

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
7 mal drücken oder:

du speicherst den zufallswert bei jedem spiel ab und verrechnest alte
gespeicherte zufallswerte mit dem neu ermitteltem zufallswert...

z.B.

1.Zufallszahl= Neu ermittelte Zufallszahl
2.Zufallszahl= Neu ermittelte Zufallszahl + Zufallszahl von vor 3
Spielen

Gruß

Flo

Autor: volkan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist, dass es die 7 zahlen nach einer tasten betätigung im 2
sekunden takt ausspucken soll!!

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hoffe ihr habt daran gedacht, daß jede Zahl nur einmal gezogen
werden darf.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Gag an dem Projekt wird wohl gerade eben dieser Zufallsgenerator
sein :)
Das ist nämlich nicht ganz trivial.
Es gibt einige Ansätze dazu, und man sollte auch viel Literatur
finden.

Ein paar Taster abfragen und LCD ansteuern wäre warscheinlich einfach
nur "zu einfach" gewesen...

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte Pseudozufallszahlen nehmen, die wiederholen sich erst alle
2^31-1 = 2147483647 mal.

Das Problem ist bloß, daß nach jedem Reset immer die gleiche Folge
entsteht.

Abhilfe ist aber ganz einfach:

Sobald man eine Ziehung gemacht hat, speichert man den Wert des
Pseudozufallsregisters im EEPROM und holt in nach einem Reset wieder
dort als nächsten Startwert ab.


Peter

Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Falls dieser Microcontroller einen Analogen Eingang hat legt man ein
Rauschen auf den Pin und liesst dann den Wert aus. Soviel ich weiss
gibt es so analoge Chaos-Schaltungen die ein chaotisches Signal
erzeugen.


Der Weihnachtsmann

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.