Forum: Mikrocontroller und Digitale Elektronik LPC2366: Zufallszahlen?


von Peter (Gast)


Lesenswert?

Hallo, Ich brauche eine Möglichkeit, mit dem LPC so etwas ähnlich wie 
Zufallszahlen zu bekommen. Die Zahlen müssen keine besondere gute 
Verteilung haben. Geht das irgnendwie, z.B durch Auslesen 
uninitialisierter Bereiche des USB oder Ethernet-RAMs?

Danke,
 -> Peter

von Hans (Gast)


Lesenswert?

ganz einfach wär sowas:

einen zähler rennen lassen und wenn du in nicht regelmäßigen abständen 
das timer-reg auslist, sind die werte die drinnen stehn "zufällig"

73

von MOD (Gast)


Lesenswert?

Hallo Hans und Peter,

als dass mit dem Timer ist so ne Sache da bekommt man eigentlich recht 
oft wiederholende bzw. rechnerisch nachvollzierbare Werte.

Ich habe ein solches Projekt (erstellen von Zufallszallen) mit einem 
kleinem ADC erreicht. Da habe ich den input port offengelassen und immer 
den dann anliegenden wert mit einem Faktor multipliziert.... der ADC 
wert insbesondere der LSB ändert sich ja recht oft.

Ich hoffe es hilft.

Gruß

von Mathi (Gast)


Lesenswert?

Für welchen Zweck möchtest Du die Zufallszahlen haben? Ist eine 
Periodizität gefordert?

Der Link ist zu nem Paper:
http://lehramt.cs.uni-magdeburg.de/Skripte/Pra/Material/zz.pdf

Bei dem Vorschlag von Hans ist es eigentlich nur eine Verschiebung des 
Problems. Du müsstest ja zu zufälligen Zeitpunkten den Zähler lesen. Im 
schlimmsten Fall passiert es dann das Du immer den gleichen Wert liest.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Siehe Artikel Zufallszahlen.

von Jochen Müller (Gast)


Lesenswert?

Google mal nach dem Begriff
LFSR
(linear-feedback-shift-register bedeutet das)

So lassen sich beliebig grosse Zufallszahlen sehr simpel erzeugen.
Auf einem z.B. AVR ist das in Assembler mit weniger als 8 Befehlen 
gemacht, bei einer 8-Bit Zufallszahl.

Jochen Müller

von Peter (Gast)


Lesenswert?

Hallo Leute,

Vielen Dank für eure Antworten.
Ich brauche die Zufallszahl um einmalig die untersten 24 Bits einer 
Ethernet-Adresse zu erzeugen (die Oberen sind fest). Die Idee mit dem 
Timer wird wohl nicht funktionieren, denn wenn ich den Timer starte und 
irgendwann später auslese, werde ich wohl immer die gleichen Wert 
erhalten. Die Idee mit dem ADC hat den Nachteil, dass man an seinem 
Eingang nichts anschließen darf, was auf Dauer auch keine Lösung zu sein 
scheint. Wahrscheinlich ist es in einem streng deterministischen System 
wie einem Microcontroller sowieso unmöglich einen zufällligen Wert zu 
erhalten, d.h. man muß es wohl von äußeren Einflüssen abhängig machen. 
Aber ich lese mir gleich mal den Artikel durch...

Vielen Dank nochmal,
 --> Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.