FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by alemorf »

http://www.spetsialist-mx.ru/Soft/Specialist_PS2.rar

На клавиатуре есть клавиша переключающая режимы MX/Стандарт.

Это кнопка так же настраивается и имеет код 8192. Можно через HTML-программу настройки посмотреть и изменить все соответствия. Можно менять эту клавишу во время работы.

Когда включен MX режим, тогда горит светодиод CAPS LOCK. За это отвечает код:

Code: Select all

if(mode1 & M_MX   ) v_leds += 4; // caps lock
Этот флаг M_MX устаналивается в обработчике нажатий:
// Нажата кнопка переключения раскладок
if(decode[v_a] & K_MXMODE) mode1 ^= M_MX;
И когда он установлен, то алгоритм меняет некоторые клавиши

Code: Select all

if(mode1 & M_MX) {
        v_u &= 0x7F;
        if(v_u==0x6) v_u = 0x5D; else // ESC => F1
        if(v_u==0x7) v_u = 0x3; else // TAB
        if(v_u==0x5D) v_u=0x5C; else // F1 => F2
        if(v_u==0x5C) v_u=0x59; else // F2 => F3
        if(v_u>=0x51 && v_u<=0x59) v_u--; // F3..F11 => F4..F12
}
Если я тут напутал, то можно поправить.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by fifan »

Вот и автор появился, привет Алексей!

Значит ты писал про МХ режим. Как лучше поступить - программировать соответствие клавиш с клавиатуры или сразу в прошивку залить вот эти смещения: F1-> F2 и так далее?

В Специалисте_МХ2 тест клавиатуры в тесте Рюмика висит, в чём может быть дело?
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by alemorf »

fifan wrote:Вот и автор появился, привет Алексей!

Значит ты писал про МХ режим. Как лучше поступить - программировать соответствие клавиш с клавиатуры или сразу в прошивку залить вот эти смещения: F1-> F2 и так далее?
Эти смещения там были изначально. Они там есть. Ты точно включил режим MX? Когда он включен, горит CAPS LOCK.

И я мог ошибиться в этом коде. Может быть надо было сдвинуть на два разряда. Или сдвинуть не в ту сторону. Хотя я проверял. Всё работало.
fifan wrote:В Специалисте_МХ2 тест клавиатуры в тесте Рюмика висит, в чём может быть дело?
А висеть может из за очень быстрого опроса, когда напряжения на плате не успевают придти в норму. Я этот глюк поборол установкой резисторов меньшего сопротивления.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by fifan »

Нет в режиме МХ сдвиг клавиш нужен вправо на одну. Я нажимаю F1 адаптер не реагирует, нажимаю F2 срабатывает F1. Тоже самое F7 -> F6.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by alemorf »

fifan wrote:Нет в режиме МХ сдвиг клавиш нужен вправо на одну. Я нажимаю F1 адаптер не реагирует, нажимаю F2 срабатывает F1. Тоже самое F7 -> F6.
Этот сдвиг выполняет код:

Code: Select all

if(v_u==0x5D) v_u=0x5C; else // F1 => F2
if(v_u==0x5C) v_u=0x59; else // F2 => F3
if(v_u>=0x51 && v_u<=0x59) v_u--; // F3..F11 => F4..F12
Этот код рабоатет, когда горит CAPS_LOCK. CAPS_LOCK горит?
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by fifan »

alemorf wrote:Этот код рабоатет, когда горит CAPS_LOCK. CAPS_LOCK горит?
Само собой горит, я по светодиоду сужу о переходе в МХ раскладку.
alemorf
Senior
Posts: 132
Joined: 03 Jan 2017 08:58
Location: SPb

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by alemorf »

fifan wrote:
alemorf wrote:Этот код рабоатет, когда горит CAPS_LOCK. CAPS_LOCK горит?
Само собой горит, я по светодиоду сужу о переходе в МХ раскладку.
Что реально нажимается при нажатии клавиш F1,F2,F3 в режиме МХ и обычном?
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by fifan »

В обычном режиме не помню, нужно комп включать, а вот в МХ как я и сказал влево на одну клавишу, т.е. я хочу перейти в ROM-диск (F6), нажимается F5 - редактор.
KestasL
Junior
Posts: 1
Joined: 23 Mar 2024 02:33

Re: FAQ. Контроллер клавиатуры для Специалист-а на ATMega

Post by KestasL »

Спасибо вам ребята. С вашей помощью собрал компьютер специалист экспресс.
Из странницы fifan брал схему и герберы для печатной платы и спасибо vinxru
за контролеры клавиатуры и сд карты. И за то, что поделились исходниками.
А теперь мое время делиться :).
Я переработал программу прошивки для клавиатуры. Собрал компьютер, распечатал
корпус, установил пленочную клавиатуру от папки планшета, написал контроллер
по выводу PS2 и подключил к контролеру от vinxru. Все прекрасно, вроде работает,
собрал и закрутил корпус и запустил игру Lode runner. И какого было мое
разочарование когда после взятия сундука управление повисло :).
Проблема та, что в алгоритме вывода кнопок от Алексея смотрит все ли линий
на опрашиваемом порте единицы и если так, то значит этот порт вход, а если нет,
то выход. Но по сути программисты могут поставить в порт что угодно и смотреть
только линий которые им актуальны. Так и в Lode runner, наверно так и происходит.
Я переписал алгоритм вывода, да и саму программу немножко поправил, чтобы было
легче читать и готовить проект. Как IDE использовал Visual Studio Code и
platformio. Так что если кто нибудь захочет что-то изменить и поправить прошивку
сможет это сделать.
Удачи всем.
You do not have the required permissions to view the files attached to this post.