Es muss in der Software passieren da ich alle pin`s verwende
Was du auch machen kannst ist zu Beginn deines Programms einen Timer starten der ständig läuft. Bei Tastendruck kannst du den Zählerstand auslesen. Wenn du nur die niederwertigen 4 Bits ausliest hast du schon mal ne Zufallszahl im Bereich von 0 - 15.
Marco
It is a job that is never started that takes the longest to finish - J.R.R. Tolkien
Es muss in der Software passieren da ich alle pin`s verwende
Wenn etwas klemmt, wende Gewalt an.
Wenn es kaputt geht,
hätte es sowieso erneuert werden müssen.
.. also so als Anregung ... alle Pins .. Lauflicht .. nun, wenn Du das Licht Multiplexen würdest und das mit 1000 Hz .. könntest Du ab und zu aus einem externe Rauschgenerator was messen - da gibt es hier irgendwo einen Thread, der mit LEDs eine Lichtmessung durchführt .. das wäre doch ideal ...
... alternativ könntst Du auch den Zufall selbst berechnen und den Startwert immer "irgendwoher" zusammensuchen, aus einem Speicherbereich der sich ändert ... timer/val der hochzählt etc.
Oder Du könntest einfach die Quarzeitbasis "etwas ungenauer" aufbauen, sprich einen externen Taktgeber verwenden, der mit einem "Rauschen" überlagert ist ... so mit mini uC, der diese Variation in "grenzen" hält ...
Ich kann mir keine Signatur leisten - bin selbständig!
Die Verteilung ist doch gut für so wenige Stichproben. SIgnifikante Abweichungen seh ich da keine. Teste mal mit 10000 Werten, da sieht das schon anders aus.Zitat von Cybrix
Timer-Werte etc sind übrigens immer deterministisch (wäre schlimm, wenn's nicht so wäre).
Wie man zufällige Startwerte für eine Seed erhalten kann ist im Artikel beschrieben.
Disclaimer: none. Sue me.
Timer- Werte sind nur dann determenistisch wenn du keine Benutzeraktion hast. Ich glaube nicht dass du es hinbekommst einen Taster mehrere Male hintereinander in einem absolut exakten Intervall zu drücken... Aber da er einen weiteren Input ausschliesst hat sich das eh erledigt...
It is a job that is never started that takes the longest to finish - J.R.R. Tolkien
Man soll sich auch irgendwann zu frieden geben!
Das ist mir jetzt zufall genug!
Also danke an euch alle die ihr mir geholfen habt!
Wenn interresse besteht lade ich mal ein kleines video von der platine in aktion hoch!
Wenn etwas klemmt, wende Gewalt an.
Wenn es kaputt geht,
hätte es sowieso erneuert werden müssen.
Die funktion srand(time(NULL)) setzt die systemzeit auf NULL, ohne diesen Befehl würde immer die selbe Zahl generiert werden.Code:#include <stdio.h> #include<time.h> int zufallszahl; void main(void) { srand( time(NULL) ); zufallszahl = rand() % 10 + 1; printf("Die Zufallszahl zwischen 1 und 10 lautet: %i",zufallszahl); }
Die Funktion rand() % 10 + 1 generiert zahlen zwischen 10 und 1, in dem du diese zahlen änderst, werden zahlen in dem neuen bereich generiert
Lesezeichen