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
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?!
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...
>z.B. ein offener AD-Wandler-Eingang...
Fängt sich bevorzugt 50Hz ein.
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
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 ;-).
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.