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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.