Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Ответ
Опции темы

Генератор случайных чисел на Atmel контроллере

Непрочитано 14.09.2010, 05:27   #11
domowoj
Почётный гражданин KAZUS.RUN
 
Аватар для domowoj
 
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,019
Сказал спасибо: 10
Сказали Спасибо 71 раз(а) в 63 сообщении(ях)
domowoj на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

AssemblerRu
Делать на микропроцессоре аналогоцифровой ГШ, по моему, анахронизм.
Вам же предложил уважаемый Falconist ссылку на Хоровица/Хилла -
32х разрядный сдвиговый регистр с ОС, сделайте програмную реализацию.
Реклама:
__________________
И на камнях растут деревья!
domowoj вне форума   Ответить с цитированием
Непрочитано 14.09.2010, 19:50   #12
AssemblerRu
Временная регистрация
 
Регистрация: 30.08.2010
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 24 раз(а) в 17 сообщении(ях)
AssemblerRu на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от OneTech Посмотреть сообщение
Стабилитрон нужон совковый.
согласен полностью
Сообщение от OneTech Посмотреть сообщение
Со стабилитрона усилить желательно ОУ. Далее можно компаратор поставить и отстроить пороги, или же завести на встроенный компаратор.
С операционником согласен а зачем еше компаратор? Ведь АЦП будет ацифровывать сигнал + шум, далее можно програмно отнять уровень сигнала и получем шум только ацифрованый во времени.
AssemblerRu вне форума   Ответить с цитированием
Непрочитано 15.09.2010, 01:20   #13
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от domowoj Посмотреть сообщение
AssemblerRu
Делать на микропроцессоре аналогоцифровой ГШ, по моему, анахронизм.
Вам же предложил уважаемый Falconist ссылку на Хоровица/Хилла -
32х разрядный сдвиговый регистр с ОС, сделайте програмную реализацию.
А если ещё точнее, то полный бред.
Вам не нравится качество генерации библиотеки компилятора? Возьмите любую книгу по математике, и сгенерируйте число по одному из кучи методов которые там описаны. С гарантированным распределением и с заданой константой повторения.

Например берём: А.Н.Цветков, В.А.Епанечников "Прикладные программы для микроэвм "Электроника Б3-34" "Электроника МК-56" "Электроника МК-54"".
Раздел: Статистика. Генерация псевдослучайных чисел.
Подразделы: Равномерный закон распределения. Нормальный закон распределения. Закон распределения Пуассона....

Берём равномерный.
1 вариант - 8000 неповторяющихся чисел.
2 - 8,9e7
3 - 4500
4 - 1e8

Правда используется математика с плавающей запятой. Но существуют тысячи способов генерации и без этого. Просто сейчас искать лень. Да и задачу надо более точно знать.

Для начальной инициализации можно задействовать например WDT или при запуске проца генерировать число и заносить его в EEPROM. Соответственно с каждым последующим запуском последовательность будет меняться. Если у вас 100 000 000 неповторяющихся чисел, то какие вопросы?
SasaVitebsk вне форума   Ответить с цитированием
Непрочитано 15.09.2010, 01:43   #14
alexgap
Гражданин KAZUS.RUN
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 883
Сказал спасибо: 119
Сказали Спасибо 1,108 раз(а) в 175 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от AssemblerRu Посмотреть сообщение
шум только ацифрованый
Его не только ацифровать нужно, а еще и атбелить. Простым языком, устранить повторяющиеся длинные последовательности одинаковых значений.

Может вы нам просто скажите зачем вам нужен этот генератор? Если не для исследовательских и не для крипто применений, то лучше использовать генератор псевдослучайной последовательности, это намного проще, быстрее и дешевле.
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
alexgap вне форума   Ответить с цитированием
Непрочитано 15.09.2010, 04:32   #15
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Думаю, лучше чем у Дональда Кнута в "Искусство программирования" т.2 не найдете описания и анализа генераторов случайных чисел.
nonamedov вне форума   Ответить с цитированием
Непрочитано 15.09.2010, 21:27   #16
AssemblerRu
Временная регистрация
 
Регистрация: 30.08.2010
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 24 раз(а) в 17 сообщении(ях)
AssemblerRu на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от nonamedov Посмотреть сообщение
Думаю, лучше чем у Дональда Кнута в "Искусство программирования" т.2 не найдете описания и анализа генераторов случайных чисел.
А могли бы вы кинуть листинг или описание пожалуста
AssemblerRu вне форума   Ответить с цитированием
Непрочитано 16.09.2010, 00:52   #17
alexgap
Гражданин KAZUS.RUN
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 883
Сказал спасибо: 119
Сказали Спасибо 1,108 раз(а) в 175 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от AssemblerRu Посмотреть сообщение
А могли бы вы кинуть листинг или описание пожалуста
Кнута не стоит, ибо он балует умножением и делением, что микроконтроллеру лишняя нагрузка и порою значительно отьедает свободное место для программы. Лучше использовать 32 битовый сдвиговый регистр с обратной связью, как предлагал уважаемый Falconist. Скорость - бешеная, период повторения - тоже. Особенно высока производительность в конфигурации Эвари́ста Галуа́. Вот код:
Код:
static unsigned long GaloisLfsr(unsigned long lfsr)
{
	// Taps: 32 31 29 1; characteristic polynomial: x^32 + x^31 + x^29 + x + 1.
	return (lfsr ›› 1) ^ (unsigned long)(0 - (lfsr & 1ul) & 0xd0000001ul);;
}
Вот один из примеров использования:
Код:
unsigned long lfsr = 1; /* Начальное значение, можно использовавть любое кроме 0 */

lfsr = GaloisLfsr(lfsr);
/* Получили в lfsr первое псевдослучайное число */

lfsr = GaloisLfsr(lfsr);
/* Получили в lfsr второе псевдослучайное число */

...

/* и так далее сколько угодно раз */
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
alexgap вне форума   Ответить с цитированием
Непрочитано 16.09.2010, 09:28   #18
OlegNZH
Почётный гражданин KAZUS.RUN
 
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

..Но мы же не Знаем-для чего этот генератор нужен! Если для "расклада карт"-то-псевдо -хуже не придумаешь- всё равно для начального значения последовательности нужна Случайная! величина .
OlegNZH вне форума   Ответить с цитированием
Непрочитано 16.09.2010, 11:03   #19
mtit
Почётный гражданин KAZUS.RUN
 
Аватар для mtit
 
Регистрация: 21.03.2007
Адрес: М.(осква)
Сообщений: 4,398
Сказал спасибо: 2,192
Сказали Спасибо 1,780 раз(а) в 1,012 сообщении(ях)
mtit на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от OlegNZH Посмотреть сообщение
для начального значения
Сообщение от OlegNZH Посмотреть сообщение
Случайная! величина .
И стандартный способ получение этой случайной величины - взять текущее системное время. Если программа требует начинать новую последовательность раз в минуту - сгодятся секунды. Раз в секунду - милисекунды.
Для проектов, где нет часов реального времени -
Сообщение от SasaVitebsk Посмотреть сообщение
Для начальной инициализации можно задействовать например WDT или при запуске проца генерировать число и заносить его в EEPROM. Соответственно с каждым последующим запуском последовательность будет меняться. Если у вас 100 000 000 неповторяющихся чисел, то какие вопросы?
__________________
+ 7 903 641 87 25// 1. Иногда отвечаю "по памяти" 2. Часто заблуждаюсь >> Критикуйте, не обижусь.
mtit вне форума   Ответить с цитированием
Непрочитано 16.09.2010, 17:52   #20
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от sasareccer Посмотреть сообщение
На что будете делить-умножать переменную "а" - это на свой вкус.
Здесь традиционная ошибка. Длина последовательности очень сильно зависит от этих констант. У Кнута про это есть, и про период последовательности тоже есть. Единственный вопрос - стартовое значение. Так это от задачи зависит. Генератор ключа для ssh помню просил повозить мышкой, с минуту
makakus вне форума   Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 15:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.