![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 17.07.2012
Сообщений: 140
|
![]()
Так ничего и не вышло пришлось остановиться пока на вашем предложении
Код:
|
![]() |
![]() |
![]() |
#22 |
Форумчанин
Регистрация: 17.07.2012
Сообщений: 140
|
![]()
Да вы угадали Чукча писатель кода на ассемблере по биос прерыванию INT 17h получил красивую картинку чередующихся пропорционально 0 и 1 на частоте генератора 100кг или при длительности периода 10 мкс, причем последовательность 0 и 1 состоит из 4х, это значит что частоту на генераторе можно увеличить еще в 4 раза и довести период соответственно до 2,5 мкс, но там уже "плечи" 0 и 1 становятся не пропорцеональными и сильно падает стабильность. А попробуйте вы что нибудь выложить на винде, хоть вы и не Чукча, но при всех ваших потугах винда более 20 мс в периоде вам не даст, и стабильность там близко не будет. Хотя конечно я могу ошибаться, и вы сможете что то конкретное показать? То что вы выложили я совсем не понял, что там был за набор цифр?
|
![]() |
![]() |
![]() |
#23 | |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]() Цитата:
Что за кривой код ты выложил без метки(@1), и чё там у тебя за устройство висит на LPT, что возвращает сброшенный бит(14)? Какие пины LPT-порта задействованы, кроме #ACK ?
Нашедшего выход - затаптывают первым..
|
|
![]() |
![]() |
![]() |
#24 |
Форумчанин
Регистрация: 17.07.2012
Сообщений: 140
|
![]()
Простите, просто кто то написал, что винда лучше доса, я пытался его защитить... Дос ведь так то не Майкрософт придумал, они же его купили, потом изменили и довели до сегодня, а организация изначально операционной системы была мне кажется очень даже хорошая и до сих пор актуальна, по крайней мере во многом превосходит МК.
код у меня к сожалению всегда кривой, так как нет возможности его взять и скопировать с одной машины на другую, иногда проще и быстре бывает просто перенабрать, видимо где то описался, сейчас исправлю Код:
Последний раз редактировалось седьмой; 01.06.2017 в 07:48. |
![]() |
![]() |
![]() |
#25 | |
Форумчанин
Регистрация: 23.01.2016
Сообщений: 608
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#26 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
седьмой, капец ты в тумане
Если на LPT висит не принтер, а левая схема TTL, то в ней нужно предусмотреть линии BUSY и #ACK, чтобы съэмулировать работу с принтером. Обычно BUSY прижимают на землю, что означает 'Принтер готов!'. Теперь можно перебором найти номер порта, для использовании его в качестве базы. Весь код спецом не даю, чтоб ты шевелил мозгами: Код:
Думай, что нужно делаь в обработчике..
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#27 |
Форумчанин
Регистрация: 17.07.2012
Сообщений: 140
|
![]()
Спасибо за код, попробую найти в нем что то дополнительное.
там ничего не висит совсем, там генератор висит и осциллограф, на одном 10м контакте. а зачем перебором, если известно в какой ячейке памяти он находится, там же кажется нулевой сегмент и смешение 400, можно же его сразу взять без перебора или нет? Весь код спецом не даю, чтоб ты шевелил мозгами: думаю весь код и не надо, он собственно у меня уже есть, просто не работал... я так понимаю, что нужно нолик послать на 7ю ногу база+1 , а вернее вы пишите припаять ее к земле. И тогда прерывание должно сработать. Ничего принципиального в вашем коде не нашел, все тоже самое что у меня, кроме готовности принтера, попробую его занулисть, спасибо. Потом отпишусь. Последний раз редактировалось седьмой; 01.06.2017 в 15:31. |
![]() |
![]() |
![]() |
#28 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
ничего не известно!
Там просто перечисляются номера портов, а который из них активный - нужно искать. Активный тот, где BUSY сброшенный. Тогда тебе и INT-17h вернёт не 90h в AH. Читай маны... Нет резона работать с портом, пока он тебе не вернёт BUSY(0), т.е. трасса\шина свободна. Контроллёр LPT ничё там не выставляет, а выставляет сам принтер. Именно поэтому ты его должен эмулировать. (если взять в корень)
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 17.07.2012
Сообщений: 140
|
![]() |
![]() |
![]() |
![]() |
#30 | |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]() Цитата:
---------------- Чтобы получить макс.быстродействие, тебе нужно избавиться в новом обработчике от всех тормозов. Сейчас - это прерывание(29h), которым ты контролируешь низкий уровень(#ACK). Пока INT-29h отработает 1 раз, ACK может несколько раз отжаться от пола. Ты думаешь что всё идёт по-плану, хотя наверняка это не так. Выводи 0-и-1 сразу в видео\буфер, чтоб прерывание обрабатывалось быстрее. Можешь посмотреть, как DOS обрабатывает INT-29h. Это не самостоятельное прерывание, а тупой вызов fn.0Eh видео\сервиса BIOS. Ну и зачем тебе гонять в стековую память (и обратно) столько значений регистров? Код:
---------------------- Не надо ничего перехватывать, а достаточно просто опрашивать статус LPT-порта на установленый бит #ACK. Даже не нужно чтобы генерилось при этом прерывание(0Fh), поскольку мы не собираемся его обрабатывать - самого статуса будет предостаточно. Вот пример такой реализации.. Как-только получишь на экране чёткую последовательность 01, значит частота генератора является оптимальной. При малой длительности импульсов - на экране будут преобладать единицы типа 1110; в противном случае - нули: Код:
Нашедшего выход - затаптывают первым..
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать программу на C#, управляющая LPT и 3 COM портами. На COM висят АЦП и ЦАП | CopperRU | Фриланс | 2 | 15.04.2012 10:19 |
Параллельный АЦП на С | Анастасий | Общие вопросы C/C++ | 4 | 05.01.2012 15:54 |
avr usb ацп | wanes101 | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 5 | 20.09.2010 10:04 |
Программа для АЦП TLC549 | WandererX | Помощь студентам | 0 | 08.04.2010 10:25 |
АЦП на ATmega48 | hobin | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 04.02.2009 04:21 |