Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.09.2010, 14:04
|
#21
|
Временная регистрация
Регистрация: 26.06.2007
Сообщений: 71
Сказал спасибо: 7
Сказали Спасибо 41 раз(а) в 21 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
А если брать младший, или даже два младших разряда с 10-битного ацп с условием какой-нибудь полусантиметровой антеннки или любой детальки? Из них собирать целое число нужной длины. Скорость не ахти, зато случайность на высоте.
|
|
|
|
18.09.2010, 15:50
|
#22
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Сообщение от makakus
|
Единственный вопрос - стартовое значение.
|
Когда то понадобилось случайное значение. Сделал так. При старте МК (это был 16F84. других с FLASH ещё не было) сгружал в EEPROM всю RАМ. А затем анализировал какие ячейки устанавливаются хаотично после подачи питания. Нашёл 3-5 ячеек. После старта сохранял эти значения и применял для формирования случайных чисел .
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
19.09.2010, 03:19
|
#23
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Да чем вам псевдо-случайные не нравятся? Надо больше хаотичности - вызывайте его каждую миллисекунду. Это, правда, только если возвращаемый результат зависит от времени, напрмер, человек нажимает кнопку - выдаётся результат. Если результат надо выдавать строго каждые 10 секунд, например, то придётся хитрить
|
|
|
|
19.09.2010, 16:20
|
#24
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Ёлки зелён.. да если есть "кнопка+чел"-никто даже и не заморачивается ....а вот если система закрытая-вот суть проблемы.А если вдруг ? - нужно распределение , допустим не Белое , а Розовое..или- "Фиолетовое" ![Улыбка](images/smilies/icon_smile.gif) ...
Upd . Простейший пример ...Игровой автомат - при "Белом"- Игрок и Хозяин -50\50 расходятся.Для Прибыли- нужно Распределение сместить в одну сторону.(Пример Абсолютно утрирован...но смысл-понятен)
Последний раз редактировалось OlegNZH; 19.09.2010 в 16:24.
|
|
|
|
19.09.2010, 21:57
|
#25
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Сообщение от OlegNZH
|
Upd . Простейший пример ...Игровой автомат - при "Белом"- Игрок и Хозяин -50\50 расходятся.Для Прибыли- нужно Распределение сместить в одну сторону.(Пример Абсолютно утрирован...но смысл-понятен)
|
PHP код:
|
value = pseudo_random(100);
switch(mode)
{
case pribil: porog = 70; break;
case porovnu: porog = 49; break;
case ubitok: porog = 30; break;
}
if(value›porog) otdat_babki_igroku();
|
|
|
|
|
20.09.2010, 00:14
|
#26
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
[quote=OlegNZH;253803]Пример Абсолютно утрирован[/quoe]
Сказал ведь. Куча вероятностных приложений есть .Например Статистическая физика.Да и в Математике.Мильон!Я конечно- далёк от того, что кто-то-то будет считать на AVR-ке - так мы ведь не услышали ЗАДАЧУ, которую ТС поставил!
|
|
|
|
20.09.2010, 09:42
|
#27
|
Частый гость
Регистрация: 22.08.2007
Сообщений: 43
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Курсовая как то была по М-последовательностям. В железе реализовывал 8 битную псевдослучайную последовательность (на логических ИЛИ). вот тут есть немного информации. Может пригодится.
|
|
|
|
20.09.2010, 10:40
|
#28
|
Почётный гражданин KAZUS.RU
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,261
Сказал спасибо: 2,113
Сказали Спасибо 1,718 раз(а) в 973 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Сообщение от OlegNZH
|
от того, что кто-то-то будет считать на AVR-ке
|
А какая разница? AVR по сравнению с IBM-XT по БЫСТРОДЕЙСТВИЮ сильно разняться? А случайные последовательности - как появились ЭВМ - так и встала такая задача. Моя любимая присказка: "Во времена Королёва полёты рассчитывали на компьтере, вычислительная мощь которого меньшь, чем у современного калькулятора."
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
|
|
|
|
20.09.2010, 14:56
|
#29
|
Частый гость
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: Генератор случайных чисел на Atmel контроллере
Еще на заре «домашних пк» использовал простую формулу
псевдо-случайных чисел в интервале ]0,1[ - Xn+1=D[11*Xn+πи]
D-дробная часть числа.
Дает неплохое равномерное распределение. При визуальном
выводе последовательных чисел (x,y) узор не наблюдается.
Число неповторяющихся чисел зависит от разрядности операндов.
При 16 разрядных - более 32000. При задании разных начальных Xn последовательности будут разные. Полностью готовый к «употреблению»
модуль: вход – r20,r21- Xn; выход- r20,r21-Xn+1 (r20-младший)
mov r22,r20
mov r23,r21
lsl r22 ;Умножаем значение в r20,r21 на 11
rol r23 ;Целая часть числа нам не нужна
add r20,r22
adc r21,r23
lsl r22
rol r23
lsl r22
rol r23
add r20,r22
adc r21,r23
ldi r22,$3f ;Число "Пи" (дробная часть) целая часть нам не нужна.
ldi r23,$24
add r20,r22
adc r21,r23
Для приведения чисел к интервалу [A,B] используется простая формула- Xn+1=A+((B-A)+1)*Xn
Например, для имитации кубика Xn умножаем на 6 и прибавляем 1.
Используем 3-х байтовую арифметику:
push r20
push r21
clr r17
lsl r20
rol r21
rol r17
mov r16,r17
mov r22,r20
mov r23,r21
lsl r20
rol r21
rol r17
add r22,r20
adc r23,r21
adc r16,r17
inc r16
pop r21
pop r20
в r16 - целое значение кубика.
Последний раз редактировалось -Dreamer-; 20.09.2010 в 18:39.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо -Dreamer- за это сообщение:
|
|
|
21.01.2011, 14:51
|
#30
|
Частый гость
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Генератор случайных чисел на Atmel контроллере
Сообщение от DVD-RW
|
А если брать младший, или даже два младших разряда с 10-битного ацп с условием какой-нибудь полусантиметровой антеннки или любой детальки? Из них собирать целое число нужной длины. Скорость не ахти, зато случайность на высоте.
|
И я того же мнения, тока не понимаю зачем, что-то подключать. У меня АЦП всегда шумело и без этого, ну или брать значения с температурного датчика, который встроен в МК.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:17.
|
|