Поиск схем. Делимся схемами Если вы ищете схему телевизора, видеомагнитофона, игровой приставки - этот раздел для вас... |
30.03.2008, 18:04
|
|
Частый гость
Регистрация: 14.04.2007
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ищу схему генератора случайных чисел на PIC
Ищу схему генератора случайных чисел на PIC.
А теперь поясню, что требуется (детально) - генератор должен работать на четыре знака(можно и больше, а если меньше то не менее трёх знаков), цифры должны генерироваться на каждом знаке случайно и независимо с интервалом примерно 1секунда (не критично можно и более, но не на много). Генерация только в случайном порядке.
И если это ещё и будет на пике типа 16F628A то моему счастью не будет предела, но это вовсе не обязательно.
Пожалуйста не оставьте без внимания, помогите. Заранее спасибо.
|
|
|
|
30.03.2008, 19:29
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Ищу схему генератора случайных чисел на PIC
Сообщение от maverick5334
|
Ищу схему генератора случайных чисел на PIC.
|
Вообще-то "генератор случайных чисел" это относится к программе, а не к схеме. А программ и алгоритмов разной степени сложности и качества в интернете навалом. Я с ПИКами не работаю, а для АВРки, когда понадобилось, просто залез на сайт атмела и скачал оттуда соответствующую аппноту.
|
|
|
|
30.03.2008, 22:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Зесь возможны два подхода:
1. Запускаем TMR1 на максимально возможную частоту. По случайному во времени событию, скажем нажатию кнопки, берем содержание TMR1 и пользуемся. Последовательность будет случайной.
2. По формуле вычисляем псевдослучайную последовательность. Формулу надо удачно подобрать, чтобы длина массива неповторяющихся чисел была удовлетворительно большая. В свое время подсмотрел некоторые формулы в книге Трохименко и Любича Програмируемые калькуляторы кажется. Для разнообразия первое число можно сформировать как в п.1, иначе последовательность всегда будет одна и та же.
__________________
Мыслю, следовательно существую
|
|
|
|
31.03.2008, 02:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.10.2006
Сообщений: 1,755
Сказал спасибо: 0
Сказали Спасибо 80 раз(а) в 56 сообщении(ях)
|
Сообщение от Popeye
|
Зесь возможны два подхода:
1. Запускаем TMR1 на максимально возможную частоту. По случайному во времени событию, скажем нажатию кнопки, берем содержание TMR1 и пользуемся. Последовательность будет случайной.
2. По формуле вычисляем псевдослучайную последовательность. Формулу надо удачно подобрать, чтобы длина массива неповторяющихся чисел была удовлетворительно большая. В свое время подсмотрел некоторые формулы в книге Трохименко и Любича Програмируемые калькуляторы кажется. Для разнообразия первое число можно сформировать как в п.1, иначе последовательность всегда будет одна и та же.
|
Неплохо использовать не кварцевую стабилизацию частоты МК, это добавит некоторый дополнительный элемент случайности в формируемую последовательность.
С уважением, Алексей.
|
|
|
|
31.03.2008, 08:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Программно, получить истинный ГСЧ невозможно, все это генераторы псевдослучайных чисел. Недаром в проф. криптографии применяються внешние ГСЧ(стоят, кстати немало).
Простейший из них представляет из себя стабилитрон, шум лавинного пробоя которого, являеться белым (плотность энергии в спектре распределяеться равномерно). Переменная составляющая, этого шума усиливаеться(по возможности без искажения спектра) и подаеться на АЦП. Код с АЦП(в любой момент времени), можно принять как истинно случайный...
Удачи!
__________________
Я, думаю, нужно подумать...
|
|
|
|
31.03.2008, 08:52
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
у avr123 вроде видел это:
Код:
|
typedef
union _random {
long number;
char bytes[4];
}
Random;
Random random;
static void rand(char seed)
{
char _temp;
if (seed) // Initialize the generator
random.number = seed;
_temp = (random.bytes[0] ^ random.bytes[3]) & (1‹‹6);
random.number ‹‹= 1;
if (_temp)
random.bytes[0] |= 0x01;
} |
Цитата:
|
Настоящие случайные числа делают генератором шума подаваемого на ногу МК и чтением несколько раз того что на ноге.
псевдослучайное означает что оно псевдо. т.е. кореляция есть конечно.
А настоящее случайное только из шума - т.е. наиболее просто. шм делают из транзистора одного и включать его можно по необходимости.
Ну или RC генератор на инверторе типа 74hc14 на чатоту не совпадающую с кварцем и не крfтную с ним.
Или на компараторе если он не занят в МК или на ОУ внешнем, куча вариантов.
Детали имеют разброс и очевидно закономерности между устройствами в партии не будет.
|
|
|
|
|
31.03.2008, 11:07
|
|
Частый гость
Регистрация: 14.04.2007
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Люди, спасибо за объёмные ответы, но к сожалению они мне мало помогли - я с PIC_ами пока знаком в варианте - нашёл прошивку со схемой, прошил (WillEPROM)и всё, как сказано в одноимённом фильме - я ведь ещё маленький и только учусь (цитата из кинофильма "Золушка")
Если не трудно, то нужна схема и HEX прошивка.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:23.
|
|