!!!Помогите разобраться с совмесной работой Pascal и внешнего ГСЧ!!!
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Хотел поэксперементировать в паскале с генератором случайных чисел, но потом узнал, что там абсолютной случайности нет, и генератор псевдослучайный. Тем временем накопал информацию и собрал на плате генератор АБСОЛЮТНО случайних чисел, собраный на шумящем диоде. (могу скинуть схемку на мэйл).
ВОПРОС СЛЕДУЮЩИЙ:
Можно ли, подключив внешний генератор к порту (com, usb) так, что б паскальский random брал случайные данние с него? Как это сделать?!!!
P.S. Могу подать на комп случайность как в аналоговом виде (в виде белого шума), так и 8-разрядным кодом.
***********!!!!!!!!!!!!!!!!ПОМОГИТЕ ПОЖАЛУЙСТА!!!!! ОЧЕНЬ НУЖНО!!!!!!!!!!!!***********
ВОПРОС СЛЕДУЮЩИЙ:
Можно ли, подключив внешний генератор к порту (com, usb) так, что б паскальский random брал случайные данние с него? Как это сделать?!!!
P.S. Могу подать на комп случайность как в аналоговом виде (в виде белого шума), так и 8-разрядным кодом.
***********!!!!!!!!!!!!!!!!ПОМОГИТЕ ПОЖАЛУЙСТА!!!!! ОЧЕНЬ НУЖНО!!!!!!!!!!!!***********
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
переписать системную функцию практически невозможно! Да и не нужно! Просто используйте в своей программе вместо Random - MyRandom (или RandomDiod $-)) - а в этой процедуре считывайте значение из порта.
Большое спасибо за ответ! Еще такой вопрос:Serge_Bliznykov писал(а):переписать системную функцию практически невозможно! Да и не нужно! Просто используйте в своей программе вместо Random - MyRandom (или RandomDiod $-)) - а в этой процедуре считывайте значение из порта.
1. Машина сама поймет, к какому порту подключен генератор, или надо как то обозначить? (просто у меня 2 соm порта)
2. При RandomDiod $ нужно просто шумящий диод что ли подключить к порту, или все таки сам генератор?
Заранее спасибо за помощь!
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
"Машина", как вы говорите, сама ничего не поймёт - всё прийдётся писать самому!Fender писал(а):1. Машина сама поймет, к какому порту подключен генератор, или надо как то обозначить? (просто у меня 2 соm порта)
и указывать конкретные адреса портов. Кроме того, я лично с портами даже на чтение не работал, но я не уверен, что это так просто и очевидно...
надеюсь, что это была шутка?!... от того, как Вы назовёте процедуру - схема устройства точно не будет меняться!!! Да хоть назовите - Vzyat_Random_iz_Stola_v_Koridore - от этого ничего не изменится ;-))))))Fender писал(а):2. При RandomDiod $ нужно просто шумящий диод что ли подключить к порту, или все таки сам генератор?
я не знаю, что за задачу вы решаете, но имхо, из пушки по воробьям палить собираетесь!
и ещё,
почитайте в инете:
http://electronix.ru/forum/index.php?sh ... entry55860
http://itc.ua/article.phtml?ID=14273&IDw=1&pid=15
Если уж есть возможность выводить шум 8-разрядным кодом, то каждый контакт платы подпаять на соответсвующий контакт данных СОМ-порта. Потом просто читать данные с порта. Еще есть небольшая проблема - кому нужен 8-разрядный ГСЧ? Даже если объединять два байта в слово, то исходя из того, что
как минимум 256 из 65536 чисел НИКОГДА не выпадут. А вообще, действительно, зачем он вам нужен, если есть хорошие алгоритмы ГСЧ и даже построенные на счетчике канала DMA-0 Intel 8239A кажись..." писал(а):генератор АБСОЛЮТНО случайних чисел
It's a long way to the top if you wanna rock'n'roll
Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
сообщение к somewhere
Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Мне нужны именно случайные числа, поэтому и взялся за это. Я кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел. (т.е. что надо писать в паскале, и как его "подружить" с внешним генератором). Если можете помочь, буду очень благодарен!
Просто я больше электронщик, и с программированием столкнулся не так давно, поэтому иногда теряюсь.
Не вникал в схему генератора случайных чисел...
В каком виде поступает инфа в аналоговом или цифровом?
я бы использовал pic с ацп и max232 для подключения к com порту. тогда все будет зависеть от программы на pic. можно, например записывать в порт разрядность нужного случайного числа и считывать в цифровом виде само значение.
Можно будет для универсализации (и работе под NT) написать для этой железяки драйверок и обращаться напрямую к устройству в системе.
В каком виде поступает инфа в аналоговом или цифровом?
я бы использовал pic с ацп и max232 для подключения к com порту. тогда все будет зависеть от программы на pic. можно, например записывать в порт разрядность нужного случайного числа и считывать в цифровом виде само значение.
Можно будет для универсализации (и работе под NT) написать для этой железяки драйверок и обращаться напрямую к устройству в системе.
С уважением, Lost Angel...
Подменять или заменять его не нужно, достаточно просто написать свою функцию. Поскольку как вы говорите, генератор может выдавать значения в цифровом виде, то после пропайки переходника, надо просто читать данные из порта. В паскале доступ к портам осуществляется через предопределенный массив PORT, который на самом деле не является участком оперативной памяти, а лишь эмулирует работу комманд ввода/вывода." писал(а): кое что почитал о том, как в паскале обозначить адрес того или иного выхода на ком порт, но все же материала о том как "завести" в паскаль генератор, как заменить им встроенный random не нашел
Код: Выделить всё
A := Port[$379]
It's a long way to the top if you wanna rock'n'roll