forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Instrkce na libovolné číslo??
Jdi na stránku Předchozí  1, 2
 
Přidat nové téma   Toto téma je zamknuto, nemůžete zde přidávat odpovědi ani upravovat své příspěvky!    Obsah fóra mcontrollers.com -> 8051 / 8052
 
Igor
Nováček
Nováček


Založen: 6.1.2008
Příspěvky: 7
Bydliště: Skalica

PříspěvekZaslal: 29 leden 2009, 20:05    Předmět: Citovat

Zdravim!

Tu je jeden odkaz http://www.dhservis.cz/rutiny_soubory/nahoda.htm

Igor


Naposledy upravil Igor dne 30 leden 2009, 19:22, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Jan16
moderátor
moderátor


Založen: 10.3.2008
Příspěvky: 547

PříspěvekZaslal: 29 leden 2009, 23:00    Předmět: Citovat

Rutina na náhodná čísla zde: (Ověřeno, funguje - a dobře ):
http://dhservis.cz/rutiny_soubory/nahoda.htm
Smile
EDIT: tys mě předběh Igore! Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Technik
Anonymní





PříspěvekZaslal: 30 leden 2009, 23:23    Předmět: Citovat

Jan16 napsal:
Rutina na náhodná čísla zde: (Ověřeno, funguje - a dobře ):
http://dhservis.cz/rutiny_soubory/nahoda.htm
Smile
EDIT: tys mě předběh Igore! Very Happy

Pro správný random generátor by měly být splněny nasledující požadavky:
1) Pravděpodobnost výskytu každého generovaného čísla ze zvoleného intervalu musí být stejná při nekonečném množsví vzorků.
2) Generování nesmí být periodické. Žádná větší posloupnost čísel se nesmí opakovat.
3) Žádná další hodnota z generátoru nesmí být předvídatelná.
4) Dvě stejná zařízení se stejným SW nesmí generovat stejnou posloupnost čísel.

Jinými slovy, random generátor se musí chovat jako zdroj bílého šumu.(obsahuje všechny fekvence se stejnou amplitudou).

Kupříkladu funkce:
Y(t) = sin(at) + sin(bt)
kde t je čas a a a b jsou reálná čísla nemající celý společný násobek je neperiodická. Zdálo by se, že to lze pro random gen. použít, ale nespňuje podmínky 3 a 4.
Aby to fungovalo, musí být do výpočtu zavlečen jistý fyzikální jev, jež je jedinečný pro to které zařízení. Už zde bylo vzpomenuto měření teploty nebo šumu z ADC.

Napadlo mě docela jednoduché řešení vycházející z výše uvedené funkce. Není třeba počítat siny, ale stačí vzít 2 nezávislé frekvence, které přirozeně budou nesoudělné. Jejich součet by dal neperiodický signál. Jednou frekvencí může být krystal MCU a druhou frekvencí sít nebo RTC.
Pak stačí spustit 1 timer, jehož inkrementování je odvozeno od krystalu MCU a druhá frekvence generuje přerušení např. od síťové frekvence. V přerušení se odečte okamžitý stav timeru. Takto získané vzorky mohou posloužit jako parametry nějaké funkce či polynomu pro výpočet náhodného čísla.

V jednoduším případě lze vytvořit přerušení od timeru v pravidelných časových intervalech a přečíst si v něm hodnotu PC registru, což je vlastně návratová adresa v zásobníku. Protože k přerušení může docházet v libovolné části programu, získáme tak posloupnost pseudonáhodných čísel ale jen tehdy, není-li hlavní program nějak synchronizován s tímto timerem.
Návrat nahoru
 

 
Jan16
moderátor
moderátor


Založen: 10.3.2008
Příspěvky: 547

PříspěvekZaslal: 31 leden 2009, 0:37    Předmět: Citovat

Technik: Jseš řek bych velký detajlista, ale máš pravdu, že náhodná čísla se většinou odvozují od časově závislých funkcí. I PC to tak dělá.
Nepročítal jsem toto téma podrobně, ale "jak moc" musí být ta generovaná čísla náhodná? (otázka pro autora tématu)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Technik
Anonymní





PříspěvekZaslal: 31 leden 2009, 13:35    Předmět: Citovat

Jan16 napsal:
Technik: Jseš řek bych velký detajlista, ale máš pravdu, že náhodná čísla se většinou odvozují od časově závislých funkcí. I PC to tak dělá.
Nepročítal jsem toto téma podrobně, ale "jak moc" musí být ta generovaná čísla náhodná? (otázka pro autora tématu)

Jako kompliment to moc nezní, ale když jsem si pročítal zdejší příspěvky, tak má poci, že mnozí podléhají jisté iluzi.
Jeli náhodné číslo generováno funkcí
y = f(a++)
kde a je vnitřní proměnná typu static a inkrementuje se s každým použitím této funkce, nemůže jít o generování náhodných čísel. Už si přesně nepamatuju terminologii z matematiky takže se asi dopustím asi pojmové chyby. Funkce je zobrazením množiny A do množiny Y. Tzn. že každému prvku a z množiny A je jednoznačne přiřazen prvek y z množiny Y. Přičemž 2 různým a může být přiřezen tentýž prvek y. Z toho plyne, že jakákoli funkce zařídí pouze záměnu pořadí generovaných čísel, ale jejich poslounost se bude periodicky opakovat. Je to stejné, jako když vezmete paměť EEPROM, do ní nahrajete "zázračná" data, na adresové vodiče připojíte čítač, který se inkrementuje s každám použitím funkce a z datových vodičů odeberet "náhodné" číslo. Nic na tom nezmění ani obsah paměni, ani záměna datových nebo adresových vodičů. Pouze to bude mít vliv na generování pořadí čísel, ale pořád je to systametický periodický generátor čísel. nikoli náhodný.

Jednoduchá ukázka praktického použití randomgenerátou, kde záleží na tom, aby opravdu generoval náhodá čísla, je tzv. zasněžení grafické plochy pomocí kreslení pixelu. Pixely se vykreslují např. do obdelníku tak dlouho, až pokryjí celou plochu. Jeho souřadnice X,Y se počítají z randomgenerátoru. Pokud to nejsou opravdu náhodná čísla, tedy nesplňují 4 výše uvedené podmínky, místo zaplnění celé plochy se nakreslí prapodivné obrazce a určitá místa se nikdy nevykreslí.

Nemá smysl uvažovat o funkci y = f(a++) a hledat zázračné algoritmy typu XOR, SWAP, ROL nebo přičítání 53, jak je zde nabízeno, protože funkce má jedinou vnitřní proměnou a, kterou když vynulujeme, bude generovat vždy sejnou poloupnost čísel. Musí obsahovat ještě další patametr, jež se mění nezávisle na chodu MCU, jako je šum ADC, frekvence sítě, frekvence RTC, doba stisknutého tlačítka atd. atd.
Návrat nahoru
 

 
kyberbob
Profesionál
Profesionál


Založen: 16.10.2008
Příspěvky: 83
Bydliště: Brno

PříspěvekZaslal: 31 leden 2009, 14:13    Předmět: Citovat

blablabla....dej pokoj kazdymu vyhovuje neco a kdyz jsi tak chytrej tak napis programek pro 89c2051 aby se dal použít jako podprogram volaný instrukcí call.. no šup šup čekám ty inteligente Wink
_________________
HOME B@STL - domaci tvorba robotika a různé elektro... 8051 AVR Arduino ... senzory ... převodníky ... LOGO!8 ... FESTO
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Technik
Anonymní





PříspěvekZaslal: 31 leden 2009, 15:19    Předmět: Citovat

kyberbob napsal:
blablabla....dej pokoj kazdymu vyhovuje neco a kdyz jsi tak chytrej tak napis programek pro 89c2051 aby se dal použít jako podprogram volaný instrukcí call.. no šup šup čekám ty inteligente Wink

Tak tohle je vrchol arogance jakou bych mohl čekat tak akorát od Ratha. Když už si žádal o pomoc, slušné je poděkovat. Napiš si to sám, práci za tebe dělat nebudu, nebo si to můžeš někde objednat za peníze.
Návrat nahoru
 

 
kyberbob
Profesionál
Profesionál


Založen: 16.10.2008
Příspěvky: 83
Bydliště: Brno

PříspěvekZaslal: 31 leden 2009, 15:45    Předmět: Citovat

mrkni se na začátek debaty ignorante, já se ptal jestli je instrukce pro 8051 a ne stořádkovej popis jak to vymyslet
_________________
HOME B@STL - domaci tvorba robotika a různé elektro... 8051 AVR Arduino ... senzory ... převodníky ... LOGO!8 ... FESTO
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Jan16
moderátor
moderátor


Založen: 10.3.2008
Příspěvky: 547

PříspěvekZaslal: 31 leden 2009, 15:54    Předmět: Citovat

Pokud sem si všiml správně, pane ignorante, tak už minimálně 2x sem byl poslán ukázkový kód (navíc tentýž), který je přesně co požaduješ. Rutina volatelná přes call, a psaná v 8051 instrukcích.
S tím nadáváním bych si dával dobrý pozor, komu nadáváš, obzvlášť admini, moderátoři ale i ostatní to nemají rádi!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
kyberbob
Profesionál
Profesionál


Založen: 16.10.2008
Příspěvky: 83
Bydliště: Brno

PříspěvekZaslal: 31 leden 2009, 16:03    Předmět: Citovat

jsem vinen zastřelte mě Wink
_________________
HOME B@STL - domaci tvorba robotika a různé elektro... 8051 AVR Arduino ... senzory ... převodníky ... LOGO!8 ... FESTO
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1496

PříspěvekZaslal: 31 leden 2009, 20:51    Předmět: Citovat

kyberbob napsal:
..., já se ptal jestli je instrukce pro 8051 a ne stořádkovej popis jak to vymyslet

Tak sa pozri do datasheetu k x51 a ak ju tam najdes, tak tam je a k nie tak nie je.

Evil or Very Mad

Tu sa ti moze dostat velmi kvalitnych a vycerpavajucich odpovedi s i teoretickym podkladom (ten je na to, aby aplikacii riesenia pytajuci sa aj porozumel, nie iba opapagajoval ho). Je ale celkom mozne, ze davka poznania nad urcitu hranicu moze byt pre niektorych jedincov dusevnemu zdraviu skodliva. Inak si neviem reakciu na Technikov prispevok vysvetlit.

Lebo ak niekto zo vsetkych uvedenych prispevkov NEPOCHOPIL, ze:

- taka instrukcia nie je,
- ze "jej" funkcia je nahraditelna generovanim pseudonahodneho cisla (nesplna vsetky Technikove body, ale casto dostacuje)
- alebo generovanim za pomoci generatora bieleho sumu (splna vsetky podmienky na nahodne cislo)
- zdrojovy kod pre generovanie pseudonahodneho cisla dostal na tanieri (dokonca ho sam uvadza)

pravdepodobne sa bude jednat o vyskyt tohto vzacneho druhu postihnutia.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 31 leden 2009, 21:15    Předmět: Citovat

kyberbob: Server mcontrollers.com tu je proto, aby vytvořil komunitu lidí se společným zájmem. Nikdo z uživatelů není povinen pro tebe psát programy, za které by jinak dostal dobře zaplaceno. Doporučuji ti se v následující době chovat slušně, protože to jinak budu řešit (BANem, ne kulkou).
_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
kyberbob
Profesionál
Profesionál


Založen: 16.10.2008
Příspěvky: 83
Bydliště: Brno

PříspěvekZaslal: 31 leden 2009, 21:22    Předmět: Citovat

já chtěl jen odpověď "ne, takova instrukce neni" Confused a ne že mi tu nejakej chytrák napiše že moje sčítání dvou čisel je směšný Mad
_________________
HOME B@STL - domaci tvorba robotika a různé elektro... 8051 AVR Arduino ... senzory ... převodníky ... LOGO!8 ... FESTO
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 31 leden 2009, 22:08    Předmět: Citovat

Raději téma zamknu, technická část je vyřešena osobní část je off-topic. Kdyby se ještě někdo chtěl vyjádřit k technické části, napište mi prosím PM nebo email a téma odemknu.

Arrow administrator: téma bylo zamčeno

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Toto téma je zamknuto, nemůžete zde přidávat odpovědi ani upravovat své příspěvky!    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
Jdi na stránku Předchozí  1, 2
 
Strana 2 z 2
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)