Zufallszahlen für PIC in ASM?

#636070
Lesenswert?

Hi,

> wie kann ich mit einem PIC 16F630 (Pseudo-) Zufallszahlen erzeugen? Am
> besten ohne äussere Beschltung also nur durch Zuhilfenahme von Assembler
> code? Ich habe schon gesucht aber nichts gefunden.
> ...warscheilich weil es unmöglich ist?
> Oder?

Eher weil du nicht Suchen kannst. Du willst doch nicht ernstaft 
behaupten, dass Goolge unter "Pseudozufallszahlen" nichts findet, was 
sich verwerten lässt, oder? :)

Du wird halt immer das Problem mit dem Startwert des PRNG haben, der 
muss irgendwo her kommen und sollte immer ander sein - sonst komme immer 
die gleichen Zahlen raus.

Axel
Gast #636073
Lesenswert?

Danke schon mal Axel. Wie man Zufallszahlen generell erzeugt ist mir 
schon klar. Auf PCs unter C ist es ja auch gar kein Problem. Aber 
soetwas für PICs zu machen in Assembler wobei man nur 35 verschiedene 
Befehle zur Verfügung hat...

"
Du wird halt immer das Problem mit dem Startwert des PRNG haben, der
muss irgendwo her kommen und sollte immer ander sein - sonst komme immer
die gleichen Zahlen raus.
"

Das war ja gerade meine Frage. Wobei du auch nicht so toll den Plan 
hast, oder? Wenn man schon immer andere (zufällige) Startwerte hat, dann 
hat man ja sein Ziel schon erreicht. Aus einer zufälligen Zahl eine neue 
Zufällige Zahl zu generieren ist meines erachtens nach sinnlos. Es sei 
den man generiert eine ganze Reihe.

Also die Frage ist immernoch: wie bekommt man einen zufälligen Startwert 
hin?
#636079
Lesenswert?

> Das war ja gerade meine Frage. Wobei du auch nicht so toll den Plan
> hast, oder? Wenn man schon immer andere (zufällige) Startwerte hat, dann
> hat man ja sein Ziel schon erreicht. Aus einer zufälligen Zahl eine neue
> Zufällige Zahl zu generieren ist meines erachtens nach sinnlos. Es sei
> den man generiert eine ganze Reihe.

Aus einer zufälligen Zahl eine neue zufällige Zahl zu generieren ist gar 
nicht so trivial, wie das erscheint. Daran sind schon viele gescheitert, 
denn am Ende waren die Zahlen dann bei weitem nicht so zufällig, wie sie 
sein sollten.

> Also die Frage ist immernoch: wie bekommt man einen zufälligen Startwert
> hin?

Mal anders geftagt: was willst du denn eigentlich machen. Letztlich 
kommt es sehr drauf an, wie gut die Zufallszahlen werden sollen und was 
schlimmstenfalls passiert, wenn jemand tatsächlich drauf kommt, welche 
Zahl als nächstes erzeugt wird.

Wenn du einen guten PRNG-Algorithmus hast, dann kann der Startwert pro 
Benutzung auch einfach um eins hochgezählt werden, ohne dass das den 
Zufallszahlen gross schadet. Setzt halt voraus, dass man ein 
EEPROM/FLASH oder so hat, wo man den Wert immer wieder Ablegen kann. 
Dann muss das ganze nur ein einziges einmal initialisiert werden (und 
ggf eine Runden laufen, damit keinr mehr weiss, bei welchem Wert man 
jetzt ist) und ab da wird das Ding bis zum Lebensende Zufallszahlen 
erzeugen können.

Ohne EEPROM/FLASH könntest du z.B ab dem Start einen Zähler laufen 
lassen, der dann als Startwert verwendet wird, wenn ein gewisses 
Ereignis eintritt. Kann man z.B gut machen, wenn man auf "Knopfdruck" 
eine Zufallszahl brauchst.

Also, sag mal, was du eigentlich machen willst....
Gast #636080
Lesenswert?

Hi Axel,
danke für deinen Beitrag. Das mit dem PRNG-Algorithmus klingt schon 
interessant. Ich werde mal danach suchen. Die Frage ist wie kompliziert 
dieser denn ist. So viel Rechenleistung und Speicher hat der PIC nicht. 
EEROM ist aber vonhanden.
Der Grund des ganzen ist wie immer meine Neugier.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren