www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Generiranje naključne vrednosti

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Ned Okt 30, 2005 6:04 pm    Naslov sporočila:  Generiranje naključne vrednosti Odgovori s citatom

Se je s tem že kdo ukvarjal?

Recimo če PIC nima A/D pretvornika in in možno podatkov pripeljati od zunaj.
Ne rabim ravno kode me pa zanima kako bi se lotili zadeve?

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Okt 30, 2005 7:47 pm    Naslov sporočila:   Odgovori s citatom

Ali bos v aplikaciji sploh imel kaksen zunanji vhod (ja, sem videl del o "nic podatkov od zunaj" ... a to je zelo sirok pojem - morda si imel ti v mislih le vnos nakljucnih vrednosti od zunaj, ne pa opazovanje dogodkov okrog mikrokontrolerja) ? Ce bo temu tako, potem definitivno izkoristi prostotekoci timer v navezavi s spremembo stanja vhoda (UART, port na katerem so tipke, nakljucni interrupti, ki spremenijo casovno zaporedje izvajanja programa, itd.). Sicer obstajajo algoritmi za generacijo psevdo-nakljucnih stevil, a nic od tega ni tako dobro, kot "zaresne" nakljucne vrednosti (recimo da uporabis isti generator, a mu z nakljucnimi vrednostmi, ki jih dobis vsakic, ko nekdo od zunaj casovno-nakljucno vpliva na sistem, lahko spremenis "pozicijo" - to so potem prave nakljucne vrednosti in ne le "zelo dolgo in za cloveka neintuitivno zaporedje").

Ce ne rabis pravih nakljucnih stevil, potem je nesmiselno komplicirati in uporabi preprosto predpripravljeno tabelo in pobiraj vrednosti iz nje. Ce tvoj program uporablja prekinitve, ki niso vezane na timer, bos ze z uporabo enega timerja kot zamika (offset) za indeks v tabelo prepripravljenih vrednosti dobil prakticno nepredvidljive (= nakljucne) rezultate, saj se bo vrednost timerja (in s tem indeksa) kdaj spremenila za cisto malo med dolocenimi ukazi, kdaj pa zelo veliko (ko bo vmes vrinjena in izvedena prekinitev), vsakic na razlicnih mestih.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Ned Okt 30, 2005 8:26 pm    Naslov sporočila:   Odgovori s citatom

Ja v bistvu sem mislil popolnoma brez vhodov predvsem zaradi enostavnosti.

Timer in tabela sta verjetno res najboljša izbira, ker bi za neko res naključje rabil kakšno specijalno vezje.

Mogoče bi stvar še malo zakompliciral in imel dva timerja, drugi bi bil recimo posredno odvisen od prvega, s tem da bi drugega porabil še za izbiro kakšne matematične funkcije, ki bi se izvedla na izžrebanih podatkih.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Ned Okt 30, 2005 9:01 pm    Naslov sporočila:   Odgovori s citatom

Ne poznam arhitekture PICov, tako da ti konkretnejsega nasveta ne morem dati, je pa tako, da brez uvedbe nakljucnih vplivov v postopek generiranja zagotovo ne bos dobil ven kaksnih hudih (= tezko predvidljivih) psevdonakljucnih stevil.

Dveh timerjev v bistvu niti ne rabis, ce bosta tekla oba odvisno od samo enega zunanjega dogodka (kar je ponavadi reset mikrokontrolerja in stevilo ukazov od reseta do zagona timerja). Tudi en sam je najbrz povsem neuporaben, ce bo aplikacija ves cas tekla v eni predvidljivi zanki, brez zunanjih prekinitev, brez vejitev, brez zunanjih vhodov (to pomeni tudi UART), itd. Lahko uporabis recimo dvojno indeksiranje v tabelo, indeksiranje z vrednostjo iz tabele (se recimo z kaksnim stevcem kot offsetom), itd. Kakorkoli ze, v vsakem primeru se bo zaporedje ponavljalo povsem enako vsakic, ko bos program pognal. Ce nimas nobenega zunanjega vpliva na izvajanje, potem je to bolj tako-tako; povsem neuporabno je to recimo za zascito, uporabno pa recimo za npr. kaksne priblizne (Monte Carlo) "izracune", kjer do zadovoljive resitve prides tako veliko hitreje.

Vsak algoritem za generiranje psevdonakljucnih stevil bo zacel niz po dolocenem casu ponavljati, niz pa bo predvidljiv (nekateri imajo pa se napake in je mozno ugotoviti v katerem delu - sicer zelo dolgega - niza se trenutno nahajajo, torej efektivno delujejo z manjso locljivostjo od nazivne).

Se nekaj o "specialnih vezjih": tudi cisto majhen (8 bitni v stilu 74x193) zunanji prostotekoci stevec z nestabilnim oscilatorjem kot vhodom (tukaj ti to za razliko od vecine primerov neenakomerno delovanje oscilatorja koristi in ne skoduje) bi bil cisto dovolj za vrednost "seeda" za generator, a si napisal da noces priklopa nobenih zunanjih stvari. Tudi prostotekoci stevec v PICu, ki ga lahko na kaksen nacin zadrzi zunanji vpliv (pritisk tipke recimo) bi bil funkcionalno identicen.


Nazadnje urejal/a Sokrat Tor Nov 01, 2005 12:33 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
twom
Član
Član



Pridružen-a: Ned 26 Okt 2003 0:37
Prispevkov: 986
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Tor Nov 01, 2005 11:53 am    Naslov sporočila:   Odgovori s citatom

Microchip AN544 vsebuje tudi Pseudo Random Number Generator.

Ima pa kašne omejitve, kot so zgoraj omenjali.


Lp,
Peter
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Pet Nov 04, 2005 12:14 am    Naslov sporočila:   Odgovori s citatom

Hvala bom pogledal tudi AN544
_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group