nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 09:51



Reply to topic  [ 9 posts ] 
FAQ. Контроллер клавиатуры для Специалист-а на ATMega 
Author Message
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
http://www.spetsialist-mx.ru/Soft/Specialist_PS2.rar

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

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

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

Code:
if(mode1 & M_MX   ) v_leds += 4; // caps lock


Этот флаг M_MX устаналивается в обработчике нажатий:

Quote:
// Нажата кнопка переключения раскладок
if(decode[v_a] & K_MXMODE) mode1 ^= M_MX;


И когда он установлен, то алгоритм меняет некоторые клавиши

Code:
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
}


Если я тут напутал, то можно поправить.


13 Jan 2017 01:05
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Вот и автор появился, привет Алексей!

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

В Специалисте_МХ2 тест клавиатуры в тесте Рюмика висит, в чём может быть дело?


13 Jan 2017 05:18
Profile
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
fifan wrote:
Вот и автор появился, привет Алексей!

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


Эти смещения там были изначально. Они там есть. Ты точно включил режим MX? Когда он включен, горит CAPS LOCK.

И я мог ошибиться в этом коде. Может быть надо было сдвинуть на два разряда. Или сдвинуть не в ту сторону. Хотя я проверял. Всё работало.

fifan wrote:
В Специалисте_МХ2 тест клавиатуры в тесте Рюмика висит, в чём может быть дело?


А висеть может из за очень быстрого опроса, когда напряжения на плате не успевают придти в норму. Я этот глюк поборол установкой резисторов меньшего сопротивления.


13 Jan 2017 07:55
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Нет в режиме МХ сдвиг клавиш нужен вправо на одну. Я нажимаю F1 адаптер не реагирует, нажимаю F2 срабатывает F1. Тоже самое F7 -> F6.


13 Jan 2017 22:07
Profile
Senior

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


Этот сдвиг выполняет код:

Code:
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 горит?


14 Jan 2017 02:50
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
alemorf wrote:
Этот код рабоатет, когда горит CAPS_LOCK. CAPS_LOCK горит?

Само собой горит, я по светодиоду сужу о переходе в МХ раскладку.


14 Jan 2017 04:33
Profile
Senior

Joined: 03 Jan 2017 08:58
Posts: 135
Location: SPb
Reply with quote
fifan wrote:
alemorf wrote:
Этот код рабоатет, когда горит CAPS_LOCK. CAPS_LOCK горит?

Само собой горит, я по светодиоду сужу о переходе в МХ раскладку.


Что реально нажимается при нажатии клавиш F1,F2,F3 в режиме МХ и обычном?


14 Jan 2017 05:14
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
В обычном режиме не помню, нужно комп включать, а вот в МХ как я и сказал влево на одну клавишу, т.е. я хочу перейти в ROM-диск (F6), нажимается F5 - редактор.


14 Jan 2017 05:18
Profile
Junior

Joined: 23 Mar 2024 02:33
Posts: 1
Reply with quote
Спасибо вам ребята. С вашей помощью собрал компьютер специалист экспресс.
Из странницы fifan брал схему и герберы для печатной платы и спасибо vinxru
за контролеры клавиатуры и сд карты. И за то, что поделились исходниками.
А теперь мое время делиться :).
Я переработал программу прошивки для клавиатуры. Собрал компьютер, распечатал
корпус, установил пленочную клавиатуру от папки планшета, написал контроллер
по выводу PS2 и подключил к контролеру от vinxru. Все прекрасно, вроде работает,
собрал и закрутил корпус и запустил игру Lode runner. И какого было мое
разочарование когда после взятия сундука управление повисло :).
Проблема та, что в алгоритме вывода кнопок от Алексея смотрит все ли линий
на опрашиваемом порте единицы и если так, то значит этот порт вход, а если нет,
то выход. Но по сути программисты могут поставить в порт что угодно и смотреть
только линий которые им актуальны. Так и в Lode runner, наверно так и происходит.
Я переписал алгоритм вывода, да и саму программу немножко поправил, чтобы было
легче читать и готовить проект. Как IDE использовал Visual Studio Code и
platformio. Так что если кто нибудь захочет что-то изменить и поправить прошивку
сможет это сделать.
Удачи всем.


Attachments:
File comment: Прошивка и исходники контролера клавиатуры v1.1
release_20240323_1.zip [35.27 KiB]
Downloaded 7 times
23 Mar 2024 03:12
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.