реклама на сайте
подробности

 
 
> Инициализация псевдослучайной последовательности, как это сделать?
ARV
сообщение Mar 11 2011, 05:42
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Отправная точка: миниатюрное устройство, где каждый новый компонент - лишний. устройство формирует ряд "случайных" сигналов, используя rand(). в сущности, алгоритм генерации ПСПЧ не принципиален. но есть большая проблема: два одинаковых устройства, включенные одновременно, генерируют абсолютно одинаковые "случайные" последовательности, что очень плохо. более того, после подачи питания устройство всегда стартует с одного и того же "места", что тоже очень плохо.

есть, конечно, функция srand(), которая могла бы помочь, но для нужного результата эту функцию нужно передать случайное число... круг замкнулся.

вопрос знатокам: посоветуйте, какими простыми и дешевыми средствами реализовать получение хотя бы одного-единственного, но на самом деле случайного числа в программе?

сразу ограничу круг советов: надежда на то, что после включения питания ячейки ОЗУ содержат случайные данные, не срабатывает, в подавляющем большинстве у одного и того же контроллера при более-менее одинаковых условиях содержимое ОЗУ после подачи питания так же более-менее одинаковое, вариации крайне недостаточные для того, чтобы считать их действительно случайными - проверено на некотором количестве atmega32.


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Mar 19 2011, 18:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



снова у меня проблема sad.gif rand() вместе с srand() не втискиваются в память микроконтроллера. уже несколько дней ищу более-менее адекватную замену - и не могу найти sad.gif

задача очень проста: получить псевдослучайное число в пределах от 1 до 7. все мои попытки сделать генератор ПСПЧ с заданными параметрами дают чрезвычайно короткий цикл - буквально пару десятков чисел, после чего последовательность повторяется sad.gif

я делаю на "регистре сдвига с XOR-обратными связями по простому полиному", после чего маскирую 3 младших бита, и если результат равен 0 - повторяю.

уже сделал открытие, что avr-gcc может с легкостью выбросить volatile register переменные из кода, если моя функция случайного числа объявлена как static... но вот качественной последовательности (мне хватило бы длины цикла хотя бы больше сотни) получить не могу sad.gif то ли полиномы у меня не те, то ли что-то не то в алгоритме...

посодействуйте, пожалуйста...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ARV   Инициализация псевдослучайной последовательности   Mar 11 2011, 05:42
- - Taradov Alexander   У Атмела есть аппнот на эту тему, номер не помню п...   Mar 11 2011, 06:29
- - ARV   пока что не нашел такого апноута... с АЦП я пробов...   Mar 11 2011, 06:53
|- - Taradov Alexander   QUOTE (ARV @ Mar 11 2011, 09:53) но для о...   Mar 11 2011, 07:55
- - 314   Висящий в воздухе вывод АЦП лихо реагирует на влаж...   Mar 11 2011, 07:04
- - ARV   в том-то и дело, что висящий вход лихо на все реаг...   Mar 11 2011, 07:08
- - Petka   Цитата(ARV @ Mar 11 2011, 08:42) есть, ко...   Mar 11 2011, 07:24
|- - ARV   Цитата(Petka @ Mar 11 2011, 10:24) На сам...   Mar 11 2011, 07:52
- - DpInRock   Согласен с предыдущим оратором. Хуже того, набор 1...   Mar 11 2011, 08:05
- - rx3apf   Цитата(ARV @ Mar 11 2011, 08:42) вопрос з...   Mar 11 2011, 08:07
|- - ARV   Цитата(rx3apf @ Mar 11 2011, 11:07) Уника...   Mar 11 2011, 08:20
- - domowoj   Если говорить о псевдослучвайной последовательност...   Mar 11 2011, 15:27
|- - rx3apf   Цитата(domowoj @ Mar 11 2011, 18:27) Если...   Mar 11 2011, 15:56
- - domowoj   Тогда усилить шумы стабилитрона и оцифровать   Mar 11 2011, 17:19
|- - muravei   Цитата(domowoj @ Mar 11 2011, 20:19) Тогд...   Mar 13 2011, 09:53
|- - SKov   Цитата(muravei @ Mar 13 2011, 12:53) А ес...   Mar 13 2011, 09:59
|- - demiurg_spb   Уважайте поиск! :-) В ветке AVR по слову RAND ...   Mar 13 2011, 10:12
- - zombi   Цитата(ARV @ Mar 11 2011, 08:42) Отправна...   Mar 11 2011, 18:51
- - forever_student   Цитата(ARV @ Mar 11 2011, 08:42) ... посо...   Mar 13 2011, 10:51
- - HALFer   дребезг контактов (геркон, реле). обмотку на выход...   Mar 14 2011, 01:06
- - ARV   не смотря на то, что лично для меня тема исчерпана...   Mar 14 2011, 05:56
|- - =AK=   Цитата(ARV @ Mar 14 2011, 16:26) 1. однов...   Mar 14 2011, 06:22
|- - rx3apf   Цитата(ARV @ Mar 14 2011, 08:56) 5. кнопо...   Mar 14 2011, 09:41
|- - demiurg_spb   Цитата(rx3apf @ Mar 14 2011, 12:41) Еще в...   Mar 14 2011, 11:17
|- - rx3apf   Цитата(demiurg_spb @ Mar 14 2011, 14:17) ...   Mar 14 2011, 11:29
|- - defunct   Цитата(ARV @ Mar 19 2011, 20:24) посодейс...   Mar 19 2011, 21:22
|- - forever_student   Цитата(ARV @ Mar 19 2011, 21:24) ...посод...   Mar 19 2011, 21:43
|- - ARV   Цитата(forever_student @ Mar 20 2011, 00...   Mar 20 2011, 09:54
|- - rx3apf   Цитата(ARV @ Mar 20 2011, 12:54) мне нуже...   Mar 20 2011, 12:29
||- - ARV   Цитата(rx3apf @ Mar 20 2011, 15:29) У мен...   Mar 20 2011, 13:38
||- - rx3apf   Цитата(ARV @ Mar 20 2011, 16:38) скажите ...   Mar 20 2011, 14:05
|- - defunct   Цитата(ARV @ Mar 20 2011, 11:54) требующи...   Mar 20 2011, 14:53
- - Warlockwolf   Кодu32 iran; u8 Radom(){ iran=(iran*...   Mar 19 2011, 21:51
- - ARV   всем в очередной раз спасибо. как обычно, в попытк...   Mar 21 2011, 09:07
- - Метценгерштейн   а не лучше ли использовать алгоритм ПСП, например ...   Mar 2 2012, 13:34


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 15:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016