roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 08:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 19:08 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Я тут поглядел - а ведь rand() при включении питания всегда выплевывает одинаковую цепочку чисел... И без часов реального времени или какого-нить внешнего пинка получить разные (хоть и псевдослучайные) цепочки нельзя. Может как-нить шум АЦП для этого дела использовать? Кто сталкивался с такой проблемой?

_________________
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 19:18 
Не в сети

Зарегистрирован: 29 окт 2008, 18:14
Сообщения: 260
Откуда: Химки МО
прог. языки: Java
Как в мк не знаю, на компе генератор нужно иниацилизировать перед использованием и сохранять значение
Вот например:
Код:
unsigned long GetRand(void)
{
    static unsigned long t = 1;
    unsigned long k;
   
    k = t / 12773;
    t = 16807 * (t - k * 12773) - 2836 * k;
   
    return t;
}
Можно так же поступить на МК...
Или как то так:
Hardware Random Number Generator: http://www.cryogenius.com/hardware/rng/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 19:31 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
нужно мерить последние знаки ацп по питанию


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 20:12 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Цитата:
нужно мерить последние знаки ацп по питанию

диапазон будет маленьким
Можно подать на АЦП любой изменяющийся сигнал, в т.ч. и с амплитудой выше опорного. А можно с внешнего генератора прямоугольников и измерять длительность от включения МК. За счет неопределенности момента включения МК и получим случайное значение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 20:33 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
А большой диапазон и не нужен, 1 бита достаточно. Сделать 16 или 32 измерения и слить их в одно число. Если в использованном AVR у АЦП есть предусилитель - его тоже стоит включить, станет сильнее шуметь. Если вообще нету АЦП - то надо лепить что-то к компаратору.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 20:51 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А еще можно в EEPROMе считать сумму байт и брать за основу при включении девайса ;)
И дописывать туда естественно в обязательном порядке каждый раз что-нибудь эдакое.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 21:12 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Может с XTAL2 через резистор 10 кОм сигнал на АЦП подать ? И по результату АЦП делать паузу до следующего АЦП - ИМХО довольно "случайно" получится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 21:15 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
сам не пробовал - может просто найти регистр в МК, значение которого по включению не определено и считать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 22:23 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Можно мерить расхождение частот RC и кварцевого генератора (можно даже без внешних компонентов через вотчдог - только долго через ресет летать...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 21 окт 2009, 22:58 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Цитата:
Сделать 16 или 32 измерения и слить их в одно число.

Хорошая идея! Для "орел-решка" просто бита хватит, а "кости" сливаем. И лишних деталек не надо. :good:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 22 окт 2009, 10:52 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Michael_K писал(а):
Можно мерить расхождение частот RC и кварцевого генератора (можно даже без внешних компонентов через вотчдог - только долго через ресет летать...)


Можно просто конденсатор добавить к предложеному выше резистору с хтал2 на АЦП - получим ФНЧ с нестабильными параметрами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 22 окт 2009, 11:11 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Буржуи вот чего пишут:
Цитата:
If you need really true randomness you need to find real world source that could inject some entropy. This could be any noisy diode connected to ADC. Such random generators are so called Hardware Random Number Generators. They often use some microscopic phenomena like thermal noise, photoelectric effect, etc.


Добавлено спустя 31 секунду:
Сам не знаю что такое, но думаю авр123 легко разберет ;)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 22 окт 2009, 11:12 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Дак сигнал на кварце такой и есть - с шумами и прочими заплывами, а к нему еще шумы резитора добавятся.


Последний раз редактировалось avr123.nm.ru 22 окт 2009, 12:32, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 22 окт 2009, 12:24 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2007, 19:23
Сообщения: 1058
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК
Можно свою функцию написать на основе линейных сдвиговых регистров или более другую. 8)

_________________
I live My life!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR - Генерация случайного числа
СообщениеДобавлено: 22 окт 2009, 12:34 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Вобщем сигнал с XTAL2 через резистор 10 ком подаем на АЦП и АЦП шунтируем парой последовательных диодов 1N4148 на землю и получаем кучу хаотичных гармоник на входе АЦП :D

А может просто "открытую" ножку АЦП оцифровывать к которой антенна в виде проводничка на плате подключена и брать младшие биты только - самые "шумные".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO