Pytanie do praktyków C51
Masz problem? Zapytaj na forum elektroda.pl
From: "Sławomir Kapelko" <skapelko_at_nospam_elka.pw.edu.pl>
Subject: Pytanie do praktyków C51
Date: Mon, 11 Aug 2003 22:25:16 +0200
Witam wszystkich.
Chcę przy użyciu pakietu Raisonance do 8051 napisać pewien program w którym
muszę losować
liczby. W jednym przypadku maksymalnie 8 bitowe a w drugim 16 bitowe.
Po przejrzeniu manuala do kompilatora Raisonance nie znalazłem jednak żadnej
funkcji typu rnd(), random() czy jakoś podobnie.
Mam w związku z tym pytanie. Czy źle szukałem i w tym pakiecie jest taka
funkcja.
A jesli nie to jak sobie z tym poradzić. Czy można do tego pakietu znależć
jakąś bibliotekę zawierającą taką funkcję?
Jak wogóle sobie poradzić z losowaniem liczb w 8051?
Może zxorować wszystkie komórki pamięci ram. Jest ich tylko 128 więc będzie
dość szybko a jego zawartość ciągle się zmienia więc będzie to dość losowe.
Może są jakieś lepsze pomysły?
pozdrawiam wszystkich i czekam na podpowiedzi
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai
From: morpheus_at_nospam_o2.pl
Subject: Re: Pytanie do =?iso-8859-2?Q?praktyk=F3w?= C51
Date: Tue, 12 Aug 2003 03:14:09 +0100
"Sławomir Kapelko" wrote:
Chcę przy użyciu pakietu Raisonance do 8051 napisać pewien program w którym
muszę losować
liczby. W jednym przypadku maksymalnie 8 bitowe a w drugim 16 bitowe.
Po przejrzeniu manuala do kompilatora Raisonance nie znalazłem jednak żadnej
funkcji typu rnd(), random() czy jakoś podobnie.
[...]
Jak wogóle sobie poradzić z losowaniem liczb w 8051?
Może zxorować wszystkie komórki pamięci ram. Jest ich tylko 128 więc będzie
dość szybko a jego zawartość ciągle się zmienia więc będzie to dość losowe.
Może są jakieś lepsze pomysły?
nie dysponujesz w urzadzeniu jakas wielkoscia analogowa,
przypadkowa w czasie ktora mozna latwo przetworzyc i stad
wyprowadzic cos takiego ? ja ostatnio sie zastanawialem
nad podobnym problemem i pomyslalem sobie, ze np. precezja
czasu napelniania zbiornika z ciecza przy niestabilizowanym
cisnieniu i zaworze krancowym w ukladzie mechanicznym (typu
spluczka :-) jest na tyle mala, ze wystarczy wygenerowac
odpowiednio duza czestotliwosc zeby w takim okresie mozna
bylo uznac ilosc taktow za zupelnie przypadkowa (np. 10MHz
przy 10 sekundach, czyli rzedu 100 milionow cykli, co przy
wymaganej przez Ciebie precyzji powinno wystarczyc)
pisze to raczej w ramach ciekawostki i sam chcialbym
uslyszec co sadzicie o takim rozwiazaniu, bo ostatecznie
nie mialem okazji go wdrozyc, a praktykiem w 51 niestety
jeszcze uznac sie nie moge...
Pozdrawiam, Robert.
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Fish" <n.o.s.p.a.m.apf_jf_at_nospam_poczta.onet.pl>
Subject: Re: Pytanie do praktyków C51
Date: Tue, 12 Aug 2003 09:27:34 +0200
Użytkownik <morpheus_at_nospam_o2.pl> napisał w wiadomości
news:3F384D71.AB69BE30_at_nospam_o2.pl...
"Sławomir Kapelko" wrote:
Chcę przy użyciu pakietu Raisonance do 8051 napisać pewien program w
którym
muszę losować
A może zadowolisz się liczbami pseudolosowymi?
Jeżli tak to na http://www.8052.com/codelib.phtml jest biblioteka RC4 do
generacji liczb pseudolosowych.
Jako źródło (seed) można na początek użyć chocby tego xor-owania pamięci
albo zliczonego czasu wykonania jakiejś zewnętrznej czynności a następne
liczby wygeneruje już procedura.
A jak wystarczy prostsza pseudolosowość to tu masz wzór na generację 16
bitowej liczby:
Random(n):= [(random(n-1)+1)*75] mod 65536
--
Janusz
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai