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

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

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

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

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

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

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

 
Опции темы

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

Непрочитано 08.09.2010, 21:41  
AssemblerRu
Временная регистрация
 
Регистрация: 30.08.2010
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 24 раз(а) в 17 сообщении(ях)
AssemblerRu на пути к лучшему
По умолчанию Генератор случайных чисел на Atmel контроллере

Кто поделится соображениями по созданию генератора случайных чисел.
Реклама:
AssemblerRu вне форума  
Сказали "Спасибо" AssemblerRu
warel (27.06.2019)
Непрочитано 08.09.2010, 22:02  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel конторллеров

в stdlib.h есть функция rand() и srand()
PHP код:
 rnd=rand() % N; /* Присвоит переменной rnd случайное значение от 0 до N-1 */ 
PHP код:
srand(n);
 rnd=rand() % N; /* Присвоит переменной rnd случайное значение от n до N-1 */ 
Максимальное значение N=0x7fff

Последний раз редактировалось harchenko_pavel; 08.09.2010 в 22:05.
harchenko_pavel вне форума  
Сказали "Спасибо" harchenko_pavel
warel (27.06.2019)
Непрочитано 08.09.2010, 22:10  
Falconist
Супер-модератор
 
Аватар для Falconist
 
Регистрация: 08.09.2007
Адрес: Kyiv, Ukraine
Сообщений: 8,017
Сказал спасибо: 434
Сказали Спасибо 3,981 раз(а) в 1,714 сообщении(ях)
Falconist на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Здесь эта задача уже была решена.
__________________
Выслушай и противную сторону, даже если она тебе и противна!..
Falconist вне форума  
Сказали "Спасибо" Falconist
warel (27.06.2019)
Непрочитано 08.09.2010, 23:40  
Falconist
Супер-модератор
 
Аватар для Falconist
 
Регистрация: 08.09.2007
Адрес: Kyiv, Ukraine
Сообщений: 8,017
Сказал спасибо: 434
Сказали Спасибо 3,981 раз(а) в 1,714 сообщении(ях)
Falconist на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

А вот что пишут Хоровиц и Хилл:
Миниатюры:
Нажмите на изображение для увеличения
Название: Цитата.jpg
Просмотров: 417
Размер:	162.0 Кб
ID:	12027  
__________________
Выслушай и противную сторону, даже если она тебе и противна!..
Falconist вне форума  
Эти 2 пользователя(ей) сказали Спасибо Falconist за это сообщение:
usb-com (31.10.2015), warel (27.06.2019)
Непрочитано 09.09.2010, 03:52  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Я проверял как работает генератор псевдослучайных чисел на CVAVR результаты удручают. Псевдо случайность очень примитивная и повторы имеют место быть в весьма малый промежуток времени (10мин), но повторения идут со смещением на единицу. Тоесть если было число 20 то через 10 минут выпадает 21, еще через 10минут 22 и т д.
Причем мозайка "повторов" имеет и реально неповторяемые элементы в соотношении примерно (1:100) 1 процент из 1000 вызовов функции.

PHP код:
unsigned int i;
char buffer[10];
srand(0xF3);
while (1)
      {
         i++;
        delay_ms(100);  
        lcd_cputpixel(rand(),rand(), BLACK);
        lcd_gotoxy(0,9);
        sprintf(buffer,"I=%d",i); 
        lcd_puts(buffer);
      }; 
__________________
Найди путь или проложи сам!

Последний раз редактировалось MasterMushi; 09.09.2010 в 03:55.
MasterMushi вне форума  
Сказали "Спасибо" MasterMushi
warel (27.06.2019)
Непрочитано 09.09.2010, 05:10  
OlegNZH
Почётный гражданин KAZUS.RUN
 
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Задействуйте Внешний СЛУЧАЙНЫЙ источник , помню- Стабилитрон - хорошо в ходу ходил. Белый Шум ..- на АЦП
Но- Программно- куча- творчества , сдвиговые- с исключением- Классика ...
Upd ... забыл сказать - в Тепловом шуме - распределение - не равномерное , не совсем- Белое...просто в Задаче - не было - распределения..

Последний раз редактировалось OlegNZH; 09.09.2010 в 05:34.
OlegNZH вне форума  
Сказали "Спасибо" OlegNZH
warel (27.06.2019)
Непрочитано 09.09.2010, 08:55  
sasareccer
Частый гость
 
Аватар для sasareccer
 
Регистрация: 20.07.2006
Сообщений: 37
Сказал спасибо: 2
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
sasareccer на пути к лучшему
Хорошо Re: Генератор случайных чисел на Atmel контроллере

Например для трех случайных чисел.
На что будете делить-умножать переменную "а" - это на свой вкус.
Также и чему будет равна при старте
static long a = ххххх
тоже на свой вкус.

Код:
// returns random integer from 1 to lim
//
int rand1(int lim)
{
  static long a = 100001;
  a = (a * 125) % 2796203;
  return ((a % lim) + 1);
}

//
// returns random integer from 1 to lim (Gerhard's generator)
//
int rand2(int lim)
{
  static long a = 1; // could be made the seed value
  a = (a * 32719 + 3) % 32749;
  return ((a % lim) + 1);
}

//
// returns random integer from 1 to lim (Bill's generator)
//

int rand3(int lim)
{
  static long a = 3;
  a = (((a * 214013L + 2531011L) ›› 16) & 32767);
  return ((a % lim) + 1);
}
sasareccer вне форума  
Сказали "Спасибо" sasareccer
warel (27.06.2019)
Непрочитано 10.09.2010, 20:53  
AssemblerRu
Временная регистрация
 
Регистрация: 30.08.2010
Сообщений: 48
Сказал спасибо: 0
Сказали Спасибо 24 раз(а) в 17 сообщении(ях)
AssemblerRu на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Сообщение от OlegNZH Посмотреть сообщение
Задействуйте Внешний СЛУЧАЙНЫЙ источник , помню- Стабилитрон - хорошо в ходу ходил. Белый Шум ..- на АЦП
Да вы правы это на мой взгляд наиболее удачное решение

Подскажите со схемой подключения самого стабилитрона
AssemblerRu вне форума  
Сказали "Спасибо" AssemblerRu
warel (27.06.2019)
Непрочитано 10.09.2010, 21:17  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 540
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Стандартное включение, но ток через стабилитрон намного ниже минимального тока стабилизации... Да поиском... шняга известная...
аtаs_stas вне форума  
Сказали "Спасибо" аtаs_stas
warel (27.06.2019)
Непрочитано 13.09.2010, 10:37  
OneTech
Вид на жительство
 
Регистрация: 09.10.2009
Сообщений: 353
Сказал спасибо: 20
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
OneTech на пути к лучшему
По умолчанию Re: Генератор случайных чисел на Atmel контроллере

Стабилитрон нужон совковый. Импортные стабилитроны слабо шумят. Со стабилитрона усилить желательно ОУ. Далее можно компаратор поставить и отстроить пороги, или же завести на встроенный компаратор.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
OneTech вне форума  
Сказали "Спасибо" OneTech
warel (27.06.2019)
 
Опции темы

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

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

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


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


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