zufallsfunktion mit pic16

OP #2440489
hallo,

ich hatte auf einem pic24 die gute alte srand() funktion benutzt um mir 
"zufallszahlen" generieren zu lassen. nun bin ich auf einen pic16 
umgestiegen. dabei hab ich den compiler gewechselt (nun hi-tech). dieser 
kennt diese funktion nicht. ich habe mit google und der threadsuche hier 
nicht viel zu diesem thema gefunden. weiß jemand wie ich diese funktion 
trotzdem implementieren kann? das sollte doch eigentlich recht leicht 
möglich sein oder ?!

danke und liebe grüße
Tim R. schrieb:
> weiß jemand wie ich diese funktion
> trotzdem implementieren kann? das sollte doch eigentlich recht leicht
> möglich sein oder ?!

Kennst du das gute alte Rückgekoppelte Schieberegister? Das macht z.B. 
Pseudozufallszahlen.
Wenn der µC einen AD-Wandler hat, kann man eine beliebige Rauschquelle 
da dran hängen und die untersten 8bits hernehmen.

mfg mf
OP
rückgekoppelte schieberegister ... ohha mal gehört hehe ...

das mit der rauschquelle verstehe ich nicht ganz, könntest du das näher 
erläutern? ich schätze du meinst durch das schwanken des übersetzten 
wertes kann man "zufallszahlen" generieren aber mit rauschverhalten habe 
ich mich nie wirklich auseinander gesetzt um sagen zu können, dass dort 
immer verschiedene zahlen generiert werden könnten?!
Gast
Tim R. schrieb:
> das mit der rauschquelle verstehe ich nicht ganz, könntest du das näher
> erläutern? ich schätze du meinst durch das schwanken des übersetzten
> wertes kann man "zufallszahlen" generieren aber mit rauschverhalten habe
> ich mich nie wirklich auseinander gesetzt um sagen zu können, dass dort
> immer verschiedene zahlen generiert werden könnten?!

z.B. ein offener AD-Wandler-Eingang...
OP
ok danke für die antworten ... es scheint wohl auf den offenen ad 
eingang hinaus zu laufen ...

nur folgendes problem ... das hätte ich erwähnen sollen:
das ganze möchte ich simulieren und danach aufbauen. und ein offener ad 
eingang in einer simulation? das schafft noch kein programm oder ?

@Rainer, danke das werde ich mal testen
Gast
Tim R. schrieb:
> das ganze möchte ich simulieren und danach aufbauen. und ein offener ad
> eingang in einer simulation? das schafft noch kein programm oder ?

Mach dir ne random table und füttere den A/D Stimulus damit (Mplab).

Aber wie ihr auf den Gedanken kommt das ein offener A/D Eingang einen 
Zufallswert liefern soll verstehe ich nicht. Ein Pic A/D hat so ca. 100 
kOhm Eingangswiderstand und nen S&H Kondensator hinter den Kanal- und 
LeseJetzMalNeSpannungEin Schaltern. Damit kannst du wunderbar den 
Kriechstrom auf der Leiterplatte zum Pin messen oder eben das 
FastNichtentladen des S&H Kondensators beim nächsten Messzyklus oder was 
sich seit dem letzten Einlesen am Pin so aufgebaut hat. Da kommt dann 
immer ein ähnlicher Wert bei raus (was deine random table schön kurz 
macht ;-).
Gast
in Hi-Tech sollte es eingentlich eine rand() Funktion geben. Genaueres 
sowie
Seed sollte das Manual liefern.Zur Initialisierung, Timer0 ist auch 
nicht schlecht, speziell wenn man nach einem POR ein WDT macht.
Gast
Sorry, dass ich das nochmal hoch hole.

Also srand() bzw. rand() gibt es im Hi-Tech definitiv. Ich benutze sie 
selbst momentan. Da musst Du irgendetwas noch nicht richtig eingestellt 
haben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.