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

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

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

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

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

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

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

 
Опции темы
Непрочитано 23.04.2008, 10:05  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Как реализовать на ATmeg8 или ATtiny датчик случайных чисел

не прибегая к огромным таблицам.
Хочу реализовать захват магистрали методом случайного доступа
Реклама:
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 23.04.2008, 10:37  
OttoStirliz
Частый гость
 
Регистрация: 29.12.2007
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 2 сообщении(ях)
OttoStirliz на пути к лучшему
По умолчанию

Вы имеете в виду программную генерацию равномерно распределенной последовательности?
__________________
Otto
OttoStirliz вне форума  
Непрочитано 23.04.2008, 11:06  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию

Сообщение от OttoStirliz
Вы имеете в виду программную генерацию равномерно распределенной последовательности?
Да. Программную генерацию псевдослучайной равномерно распределённой последовательности
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 23.04.2008, 11:48  
OttoStirliz
Частый гость
 
Регистрация: 29.12.2007
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 2 сообщении(ях)
OttoStirliz на пути к лучшему
По умолчанию

В компиляторе есть стандартный генератор:
int rand(void)- returns a pseudo random number between 0 and RAND_MAX.
Только насчет равномерности они лукавят.
Во времена Спектрумов и БК можно было легко проверить равномерность - 1-е случайное число подаем на X, 2-е на Y, 3-е на COLOR и рисуем на экране точки.
Так вот, эти точки ложатся вблизи диагонали экрана.
Меня не устраивали ни их равномерность, ни использование плавучей арифметики. Нужен был компактный и быстрый код.

Вот моторольный ассемблер: (b=R3 - 2байта вход и выход)

MOV #5,R0 ; цикл до 5
$1: MOV R3,R2 ; c = b
ROL R3 ; b = b ‹‹ 1
ADD R3,R2 ; c = c + b
INC R3 ; b = b + 1
XOR R2,R3 ; b = b ^ c
ASL R3 ; b = b ‹‹ 1
ADD R2,R3 ; b = b + c
ADD #771,R3 ; b = b + 771
SWAB R3 ; поменять местами байты
SOB R0,$1 ; повторить еще 4 раза
; выход (результат в R3)

Вот на Модуле:

PROCEDURE RND(b:INTEGER):INTEGER;
VAR
c,d : INTEGER;
BEGIN
FOR d:=1 TO 5 DO
c := b; b := b * 2; c := c + b;
b := ( INTEGER(BITSET(b + 1) / BITSET(c)) ‹‹ 1 ) + c + 303H;
b := (b ‹‹ + (b ›› ;
END;
RETURN b;
END RND;

Я сейчас попытаюсь портировать с Модулы на C:

int RND(int b) {
int c,d;
for (d=1;d‹=5;d++) {
c = b; b = b ‹‹ 1; c = c + b;
b = ((b + 1) ^ c) ‹‹ 1 ) + c + 0x0303;
b = (b ‹‹ + (b ›› ;
}
return b;
}

1-й вызов - с базовым значением последовательности (можно использовать в кач-ве пароля при кодировании данных этим генератором):
..
r = RND(100);
последующие вызовы - обязательно подставлять предыдущий результат:
r = RND(r);
__________________
Otto
OttoStirliz вне форума  
Непрочитано 23.04.2008, 11:56  
OttoStirliz
Частый гость
 
Регистрация: 29.12.2007
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 2 сообщении(ях)
OttoStirliz на пути к лучшему
По умолчанию

В догонку. При проверке равномерности кода этого генератора весь экран заполняется точками, а не только его диагональ.
Недостаток - нет нормализации. Приходится ее лепить где-то сбоку. Если нужен диапазон значений 0..9, то здесь просто - берем остаток от деления.
Короче, надо думать в каждом конкретном случае.
__________________
Otto
OttoStirliz вне форума  
Непрочитано 23.04.2008, 11:58  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию

Сообщение от OttoStirliz
Во времена Спектрумов и БК можно было легко проверить равномерность - 1-е случайное число подаем на X, 2-е на Y, 3-е на COLOR и рисуем на экране точки.
Так вот, эти точки ложатся вблизи диагонали экрана.
Было дело.. Тоже так баловался.. А за развёрнутый ответ спасибо.. Бум изучать Ваш код
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 23.04.2008, 12:01  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию

Сообщение от OttoStirliz
Если нужен диапазон значений 0..9, то
Нужен диапозон 1..8 , т.к. на магистрали будут висеть 8 девайсов
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Непрочитано 25.04.2008, 00:25  
smg123
Гражданин KAZUS.RU
 
Регистрация: 13.07.2005
Сообщений: 602
Сказал спасибо: 14
Сказали Спасибо 40 раз(а) в 19 сообщении(ях)
smg123 на пути к лучшему
По умолчанию

Делал на тиньке15 генератор белого шума на базе регистра с обратными связями. Организуем из 4-х 8 битных регистров 32 разрядный регистр сдвига. Заносим ненулевое значение. Cигналы с 17 и 31 разрядов через XOR подаём во флаг переноса. Крутим по кругу через флаг переноса.
smg123 вне форума  
Непрочитано 25.04.2008, 01:45  
di_halt
Прописка
 
Аватар для di_halt
 
Регистрация: 17.10.2006
Сообщений: 147
Сказал спасибо: 2
Сказали Спасибо 22 раз(а) в 11 сообщении(ях)
di_halt на пути к лучшему
По умолчанию

Сообщение от smg123
Делал на тиньке15 генератор белого шума на базе регистра с обратными связями. Организуем из 4-х 8 битных регистров 32 разрядный регистр сдвига. Заносим ненулевое значение. Cигналы с 17 и 31 разрядов через XOR подаём во флаг переноса. Крутим по кругу через флаг переноса.
Так просто? Реально белый шум был? Или нечто похожее?
__________________
Мой блог по электронике - www.easyelectronics.ru
di_halt вне форума  
Непрочитано 25.04.2008, 04:31  
domowoj
Почётный гражданин KAZUS.RU
 
Аватар для domowoj
 
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,021
Сказал спасибо: 10
Сказали Спасибо 70 раз(а) в 63 сообщении(ях)
domowoj на пути к лучшему
По умолчанию

Сообщение от smg123
Делал на тиньке15 генератор белого шума на базе регистра с обратными связями. Организуем из 4-х 8 битных регистров 32 разрядный регистр сдвига. Заносим ненулевое значение. Cигналы с 17 и 31 разрядов через XOR подаём во флаг переноса. Крутим по кругу через флаг переноса.
С какой частотой "выталкивал" наружу псевдокод?
domowoj вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Attiny 2313 - Как правильно сжечь порты electric123 Микроконтроллеры, АЦП, память и т.д 42 07.09.2009 08:53
Как реализовать искробезопасную цепь на RS-485 alag57 Автоматика и аппаратура связи 4 07.07.2009 12:47
Ищу схему генератора случайных чисел на PIC maverick5334 Поиск схем. Делимся схемами 6 31.03.2008 11:07
Как реализовать блок-памяти electronic-v Микроконтроллеры, АЦП, память и т.д 0 26.12.2007 12:51
генератор случайных чисел ZyXEL Микроконтроллеры, АЦП, память и т.д 1 26.02.2006 08:49


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot