!!!Помогите разобраться с совмесной работой Pascal и внешнего ГСЧ!!!

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
Fender
Сообщения: 3
Зарегистрирован: 01 сен 2007, 01:30

01 сен 2007, 01:36

Хотел поэксперементировать в паскале с генератором случайных чисел, но потом узнал, что там абсолютной случайности нет, и генератор псевдослучайный. Тем временем накопал информацию и собрал на плате генератор АБСОЛЮТНО случайних чисел, собраный на шумящем диоде. (могу скинуть схемку на мэйл).

ВОПРОС СЛЕДУЮЩИЙ:
Можно ли, подключив внешний генератор к порту (com, usb) так, что б паскальский random брал случайные данние с него? Как это сделать?!!!
P.S. Могу подать на комп случайность как в аналоговом виде (в виде белого шума), так и 8-разрядным кодом.

***********!!!!!!!!!!!!!!!!ПОМОГИТЕ ПОЖАЛУЙСТА!!!!! ОЧЕНЬ НУЖНО!!!!!!!!!!!!***********
Serge_Bliznykov
Сообщения: 366
Зарегистрирован: 31 авг 2007, 03:06

01 сен 2007, 12:34

переписать системную функцию практически невозможно! Да и не нужно! Просто используйте в своей программе вместо Random - MyRandom (или RandomDiod $-)) - а в этой процедуре считывайте значение из порта.
Fender
Сообщения: 3
Зарегистрирован: 01 сен 2007, 01:30

01 сен 2007, 14:34

Serge_Bliznykov писал(а):переписать системную функцию практически невозможно! Да и не нужно! Просто используйте в своей программе вместо Random - MyRandom (или RandomDiod $-)) - а в этой процедуре считывайте значение из порта.
Большое спасибо за ответ! Еще такой вопрос:
1. Машина сама поймет, к какому порту подключен генератор, или надо как то обозначить? (просто у меня 2 соm порта)
2. При RandomDiod $ нужно просто шумящий диод что ли подключить к порту, или все таки сам генератор?

Заранее спасибо за помощь!
Serge_Bliznykov
Сообщения: 366
Зарегистрирован: 31 авг 2007, 03:06

01 сен 2007, 18:35

Fender писал(а):1. Машина сама поймет, к какому порту подключен генератор, или надо как то обозначить? (просто у меня 2 соm порта)
"Машина", как вы говорите, сама ничего не поймёт - всё прийдётся писать самому!
и указывать конкретные адреса портов. Кроме того, я лично с портами даже на чтение не работал, но я не уверен, что это так просто и очевидно...
Fender писал(а):2. При RandomDiod $ нужно просто шумящий диод что ли подключить к порту, или все таки сам генератор?
надеюсь, что это была шутка?!... от того, как Вы назовёте процедуру - схема устройства точно не будет меняться!!! Да хоть назовите - Vzyat_Random_iz_Stola_v_Koridore - от этого ничего не изменится ;-))))))

я не знаю, что за задачу вы решаете, но имхо, из пушки по воробьям палить собираетесь!
и ещё,
почитайте в инете:
http://electronix.ru/forum/index.php?sh ... entry55860
http://itc.ua/article.phtml?ID=14273&IDw=1&pid=15
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

03 сен 2007, 08:51

Если уж есть возможность выводить шум 8-разрядным кодом, то каждый контакт платы подпаять на соответсвующий контакт данных СОМ-порта. Потом просто читать данные с порта. Еще есть небольшая проблема - кому нужен 8-разрядный ГСЧ? Даже если объединять два байта в слово, то исходя из того, что
&quot писал(а):генератор АБСОЛЮТНО случайних чисел
как минимум 256 из 65536 чисел НИКОГДА не выпадут. А вообще, действительно, зачем он вам нужен, если есть хорошие алгоритмы ГСЧ и даже построенные на счетчике канала DMA-0 Intel 8239A кажись...
It's a long way to the top if you wanna rock'n'roll
Fender
Сообщения: 3
Зарегистрирован: 01 сен 2007, 01:30

09 сен 2007, 00:17

Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Fender
Сообщения: 3
Зарегистрирован: 01 сен 2007, 01:30

09 сен 2007, 00:20

Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Fender
Сообщения: 3
Зарегистрирован: 01 сен 2007, 01:30

09 сен 2007, 00:22

сообщение к somewhere

Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

10 сен 2007, 09:03

Не вникал в схему генератора случайных чисел...

В каком виде поступает инфа в аналоговом или цифровом?

я бы использовал pic с ацп и max232 для подключения к com порту. тогда все будет зависеть от программы на pic. можно, например записывать в порт разрядность нужного случайного числа и считывать в цифровом виде само значение.

Можно будет для универсализации (и работе под NT) написать для этой железяки драйверок и обращаться напрямую к устройству в системе.
С уважением, Lost Angel...
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

12 сен 2007, 15:31

&quot писал(а): кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел
Подменять или заменять его не нужно, достаточно просто написать свою функцию. Поскольку как вы говорите, генератор может выдавать значения в цифровом виде, то после пропайки переходника, надо просто читать данные из порта. В паскале доступ к портам осуществляется через предопределенный массив PORT, который на самом деле не является участком оперативной памяти, а лишь эмулирует работу комманд ввода/вывода.

Код: Выделить всё

A := Port[$379]
Переменная А в данном случае примет данные с LPT порта, данные на него попадают с контактов, на которых сидит цифровой ГСЧ.
It's a long way to the top if you wanna rock'n'roll
Ответить