Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Generátor (pseudo)náhodných čísel na ATTiny 2313 - jak?

Zdar, umí tady někdo v AVR assembleru? Já jsem pár věcí už udělal (3x3x3 a 4x4x4 LED kostku, 16x10 LED displej s běžícím textem), teď se chystám na Tetris (pro ten 16x10 displej) a potřeboval bych generátor pseudonáhodných čísel pro volbu padajícího bloku. Vůbec netuším jak bych to měl zprogramovat a na googlu jsem to nenašel v assembleru, jenom v Céčku. Céčko neumím. Poradí někdo? Dík...

Předmět Autor Datum
Co třeba použití white noise? http://www.avrfreaks.net/index.php?name=PNphpBB2&f ile=printview&t=550…
L-Core 17.01.2013 17:09
L-Core
Dík za nakopnutí, na té stránce se dá vybrat celkem dost. Popravdě řečeno ještě nemám představu jak…
mia 17.01.2013 17:48
mia
Tlačítko nikdy nestiskneš přesně stejně. Chuck Norris ano.
host 17.01.2013 17:51
host
Chuck Norris donutí tlačítko, aby se stisklo samo :-) poslední
mia 17.01.2013 17:53
mia
Co třeba využít vnitřní čítač/časovač a brát hodnotu při posledním stisku tlačítka před vygenerování…
JoPe 17.01.2013 17:40
JoPe
jj, taky mě to napadlo, viz předchozí příspěvek. Než jsem ho dopsal, tak jsi to už napsal.
mia 17.01.2013 17:50
mia
How do I generate random numbers on the AVR [DOC]
host 17.01.2013 17:45
host

Co třeba použití white noise?
http://www.avrfreaks.net/index.php?name=PNphpBB2&f ile=printview&t=55096&start=0

Základem bude vymyslet algoritmus. Já kdysi dělal hodně složitý (aby co možná nejnáhodnější) psudogenerátor ve Fortranu, ale to už je dnes pasé. Sice to vycházelo ze zadaných konstant, ale dnes není problém konstanty tahat třeba ze systémového času, GPS či něčeho v čase proměnného.

Co to obejít? Nedá se volat nějaká random subrutina?

Dík za nakopnutí, na té stránce se dá vybrat celkem dost. Popravdě řečeno ještě nemám představu jak to celý napíšu, algoritmy mě napadají většinou on-fly, takže volání random subrutiny je zatím pasé. Pokud by to AVR mělo nějaké vnitřní hodiny, tak si dovedu představit, že bych je pro generování použil. Jedině snad spustit osmibitový čítač a při spuštění hry (tlačítkem) použít jeho stav jako základ, tak by se dala zabezpečit jakžtakž náhodnost. Tlačítko nikdy nestiskneš přesně stejně.

Zpět do poradny Odpovědět na původní otázku Nahoru