Последняя схема для реализации от vinxru:
Последняя схема для реализации от vinxru:
Последний раз редактировалось fifan; 03.01.2013 в 18:27.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Читаю
http://www.emuverse.ru/wiki/%D0%A1%D...8F.D1.82.D0.B8
И там написано:
Для опроса клавиатуры может использоваться один из трех методов:
1)Порты A, младшая половина C и B программируются на ввод. Нажатая клавиша определяется по положению нулей в обоих портах. Нажатая клавиша располагается на пересечении положения нулей.
Откуда там возьмется ноль?
2) Порт A и младшая половина C программируются на вывод, порт B — на ввод. Осуществляется сканирование методом бегущего «0» путем записи в порты A и C и анализа порта B.
3) Порт A и младшая половина C программируются на ввод, порт B — на вsвод. Осуществляется сканирование методом бегущего «0» путем записи в порт B и анализа портов A и C.
Последний раз редактировалось vinxru; 31.12.2012 в 11:23.
блин... все просто:
есть порт записи В и порт чтения А. записываем в порт В семь единиц и один ноль, счивываем порт А. если один из бит есть ноль то это пересечение. думаю дальше все понятно.
в Специалисте в отличии от "86РК подобных" используется матрица не 8х8 (порты А и В) а с частичным захватом порта С.
Последний раз редактировалось Atari; 31.12.2012 в 03:39.
.
Да, клава в спеце 12х6. PA+PCl это одна координата, PB другая.
При этом, разные программы по-разному ее опрашивают: все мониторы используют режим [A+Cl] на вывод а [B] на ввод. Софт МХа использует [B] на вывод а [A+Cl] на ввод. NC использует [A+Cl] на вывод (все нули, используется особбеность ВВ55 при смене режима) а [B] на ввод для определения факта нажатия и [B] вывод и [ACl] на ввод при сканировании. [Ch], [B.1] и [B.0] при этом имеют индивидуальные функции. Здесь я веду расчет таймингов для создания безвейтингового контроллера конкретно для Спеца.
В данном случае A,B,C работают на вход.
Нет исходящих линий.
По ссылке описываеся три способа
1) Все порты на вход
2) A+C выход, B вход
3) A+C вход, B выход
---------- Post added at 10:20 ---------- Previous post was at 10:12 ----------
Про способы 2,3 о которых вы говорите, всё понятно.
При записи в порт ВВ55, микроконтроллер будет переводить свои порты на ввод. Искать нули. Рассчитывать, где еще должны появится нули. А потом переводить все порты на вывод.
Последний раз редактировалось vinxru; 31.12.2012 в 11:16.
Это ошибка. Теоретически это не возможно. В схеме клавиатуры стоят подтягивающие к питанию резисторы. И даже если их нет, эксперимент показывает, что оба соединенных входа читаются как 1.
Скорее всего автор этой инфы(почему-то помнится что это Пыхонин) не учел тот факт, что при смене режима выходные регистры у ВВ55 обнуляются и посчитал что используется режим ввода, так как нет записи в порт(по алгоритму из NC, как написал HardWareMan выше).
Последний раз редактировалось Andrey_Korabelev; 31.12.2012 в 19:09.
Всё указанное HardWareMan'ом верно и подтверждено экспериментально на версии Специалиста на FPGA на основе девборд Reverse от Ewgeny7. Мною также это взято за основу в адаптере.
Вот в Этой теме обсуждалось.
Все зависит от технологии порта, это да. Пробовал штук пять обычных конца 80-начала 90-х.
Как там Ewgeny7 пишет, висящий вход читается как 0.
В моих тестах - сразу после смены режима вход читался как 1. Если его замкнуть на землю и отпустить - читался как 0.
Соединенные же входы - это не подвешенные входы! На них потенциал около 1.5В. Читается как 1, стабильно даже после подачи и снятия земли.
Я помню на кружке, дополнительный ВВ55 настроенный на вход ловил 50Гц наводку, если руку держать рядом с разъемом, куда выходят его порты.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)