Vienoje vietoje prireikė nepriklausomo “randominizatoriaus”. T.y. prietaisiuko, kuris su žinoma matematine tikimybe pasako “True” arba “False”.
Veikia taip- paspaudi mygtuką ir su maždaug 8% tikimybe užsidega raudona spalva, kitu atveju užsidega žalia spalva. Spalva šviečia maždaug 3 sekundes. Dar kas kažkiek sekundžiu 3 milisekundėm mirkteli mėlyna spalva- čia kad priminti, kad prietaisas veikia.
Nežinau kaip bus toliau, bet teoriškai prie randominizatoriaus jungsis kažkokia periferija. Tačiau čia tik prototipas.
Viskas padaryta ant Atmelio minimalistinės mikroschemos – AT90S2343. Panaudojom mano PCB47415.
Softas labai paprastas- pagrindiniam cikle sukasi skaitliukas 0-255. Jis sukasi visada ir ant pilno greičio. Kiek jis ten sukasi nežinau, bet MCU taktinis dažnis artimas 1MHz.
Tuo tarpu kiek letesniu greičiu taimeris tikrina mygtuko būseną. Jei nuspaustas, lygina random skaičių su konstanta. Pagal tai ir sprendžia kokia spalvą užžiebti. Gal ir nėra gerai, dėl atsitiktinių skaičių mygtuko apklausos naudoti taimerį- jis gi susijęs su procesoriuko dažniu ir gal gaunasi kokia matematinė priklausomybė? Tačiau per tą patį pertraukimą dar kartais užžiebiamas mėlynas LEDas ir šiaip. Žodžiu, lygtai skaičiai ir atsitiktiniai gavosi.
Būtent atsitiktimumą apsprendžia žmogus paspaudęs mygtuką.
Softo source code ir kompiuliuotas failas:
Source code and hex for Atmel MCU.