roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 19:58

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Генерация случайного числа
СообщениеДобавлено: 03 мар 2007, 21:31 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Народ, подскажите как на МК сгенерировать случайное число (СЧ)?
Смысл, подключаем какое-то кол-во МК в одну шину, например RS485.
Все МК питаются от одного источника.
Подаем питание, на основе этого СЧ генерируем временную задержку и каждый МК (у всех МК код одинаковый) в шину кидает свою посылку.
Гипотетически  посылки не должы сталкиваться.
Теперь вопрос, какую схему прикрутить к МК чтобы он генерировал СЧ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 22:13 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
В моем FAQ по микроконтроллерам в кратком курсе:

http://avrfaq.narod.ru/      есть такое:

_77 псевдоСлучайное число получить.txt

Цитата:
Делал я простенький генератор... — Bill   17.08.2005

Код:
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;
}

=======================
Еще вариант:

Берем число сдвигаем на один разряд вправо(влево). XOR крайнего правого(левого) и какого нить другого битов пишем в крайний левый(правый) бит.  


Из конфы Телесистем, как и почти весь FAQ.
http://telesys.ru/wwwboards/mcontrol/index.shtml


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 22:25 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
И стандартные функции в CVAVR например

int rand (void)
generates a pseudo-random number between 0 and 32767.

в BASCOM наверняка тоже есть.

=======

Настоящие случайные числа делают генератором шума подаваемого на ногу МК и чтением несколько раз того что на ноге.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 22:27 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 22:42 
Не в сети
отсылающий читать курс
Аватара пользователя

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

==========

А настоящее случайное только из шума - т.е. наиболее просто. шм делают из транзистора одного и включать его можно по необходимости.  

Ну или RC генератор на инверторе типа 74hc14 на чатоту не совпадающую с кварцем и не крfтную с ним.  

Или на компараторе если он не занят в МК или на ОУ внешнем, куча вариантов.

Детали имеют разброс и очевидно закономерности между устройствами в партии не будет.

==========

либо на АЦП подать даже такт от кварца через резистор 10 КОм !  с XTAL2 и оцифровывать его - т.е. черти что будет мерить и получатся случайные числа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 22:52 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 23:12 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
только ИМХО когда не меряеш этот вход АЦП нужно в "0" выход  переводить. а то будет шум во весь АЦП гнать.  Вобщем резистор побольше желателен.

Сообщи о результатах пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 мар 2007, 23:24 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2007, 11:37 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2007, 14:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Тогда RC генератор на 1.5 МГц примерно на 1 элементной логике типа как hc14 с самыми хреновейшими по стабильности R и C из доступных.  Можно на ногу МК подать сигнал.

А можно на АЦП завести сигнал с конденсатора генератора. Тогда частоту сделать низкую 200 - 400 КГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2007, 15:11 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2007, 16:28 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
с RC генартора. можно его на 4093 сделать. резистор с выхода инвертора на вход, а вход заземлен конденсатором.

На конденсаторе будет "пила с фигурными зубцами" - ее и цифровать.

А генератор можно питать ножкой МК - т.е. включать когда нужно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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