Важная информация

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 41

Тема: Контроллер для подключения PS/2 клавиатуры

  1. #31
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    caro,
    pin8 x6=x8
    pin9 x7=x9
    pin10 x8=x10
    pin11 x9=x11
    pin12 x10=x12
    pin13 x11=x13
    pin27 x12=x6
    pin26 x13=x7

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Activist
    Регистрация
    20.12.2016
    Адрес
    г. Москва
    Сообщений
    376
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust Посмотреть сообщение
    Массив задает соответствие между нажатой клавишей и замкнутыми контактами на матрице.
    собрал контроллер, хочу улучшить раскладку, можешь поделиться принципами формирования массива? Не очень хочется в реверсинженеринг глубоко заныривать))))
    Выглядит примерно вот так:

    Ну и конечно пины переопределить бы в прошивке, чтобы такую лапшу на шлейфе не разводить....

  4. #33
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    surinm, ответ здесь.

  5. Этот пользователь поблагодарил Xrust за это полезное сообщение:

    surinm (23.06.2021)

  6. #34
    Activist
    Регистрация
    20.12.2016
    Адрес
    г. Москва
    Сообщений
    376
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновил первый пост, добавил туда прошивку и все ссылки, необходимые для заказа или изготовления контроллера.

  7. #35
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    surinm, а переключение qwerty/йцукен уже реализовали?

  8. #36
    Activist
    Регистрация
    20.12.2016
    Адрес
    г. Москва
    Сообщений
    376
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust Посмотреть сообщение
    surinm, а переключение qwerty/йцукен уже реализовали?
    Это ж надо еще одну матрицу сформировать и например по NumLock переключать... сделаю попозже.... В моей прошивке задействован alf и Фикс, так что все работает на корвете штатно))) можно и на русском и на английском чепятать))

  9. #37
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от surinm Посмотреть сообщение
    Это ж надо еще одну матрицу сформировать и например по NumLock переключать
    Все верно, к меня пока руки не дошли.

  10. #38
    Activist
    Регистрация
    20.12.2016
    Адрес
    г. Москва
    Сообщений
    376
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Прошивка с переключаемой раскладкой

    #include <PS2KeyRaw.h>
    #define AX0 4
    #define AX1 5
    #define AX2 6
    #define AX3 7
    #define AY0 8
    #define AY1 9
    #define AY2 10
    #define RSTMT 14
    #define CSMT 15
    #define DATMT 16
    #define STBMT 17
    #define DATAPIN 2
    #define IRQPIN 3

    volatile boolean d = HIGH;
    uint8_t table[128] = {127,127,127,39, 43, 47, 45, 127,127,127,
    127,127,41, 50,88,127,127,28,30,127,
    20,74, 124, 127,127,127,44, 12, 98, 104,
    122, 18,127,40, 2, 32, 36, 118, 120, 127,
    127,48,68, 108, 100, 72, 116, 127,127,38,
    76, 42, 46, 66, 114, 127,127,127,14, 64,
    96, 112, 94, 127,127,106,70, 8, 4, 126,
    92, 127,127,86, 80 ,102, 34,10, 84,127,
    127,127,6,127,78, 90, 127,127,127,16,
    62, 0, 127,82,127,127,127,127,127,127,
    127,127,52,127,127,109, 127,103, 97, 127,
    127,127,111, 70, 107, 101, 99, 79, 24,127,
    58,127,105, 127, 127,77, 127,127};

    uint8_t t_qwerty[128] = {
    127,127,127,44, 42, 40, 41, 127,127,127,
    127,127,43, 102,54,127,127,127,112,127,
    117,33, 65, 127,127,127,50, 35, 1, 39,
    66, 127,127,3, 48, 4, 5, 68, 67, 127,
    127,103,38, 6, 36, 34, 69, 127,127,22,
    2, 16, 7, 49, 70, 127,127,127,21, 18,
    37, 71, 80, 127,127,84,19, 17, 23, 64,
    81, 127,127,86, 87 ,20, 83,32, 55,127,
    127,127,82,127,51, 127, 127,127,127,119,
    96, 53, 127,52,127,127,127,127,127,127,
    127,127,101,127,127,9, 127,12, 15, 127,
    127,127,8, 22, 10, 13, 14, 24, 115,127,
    127,127,11, 85,127,25, 127,127};

    boolean qwerty = false;

    PS2KeyRaw keyboard;
    void setup() {
    //Инициализация портов
    pinMode(19, OUTPUT);
    pinMode(AX0, OUTPUT); //AX0
    pinMode(AX1, OUTPUT); //AX1
    pinMode(AX2, OUTPUT); //AX2
    pinMode(AX3, OUTPUT); //AX3
    pinMode(AY0, OUTPUT); //AY0
    pinMode(AY1, OUTPUT); //AY1
    pinMode(AY2, OUTPUT); //AY2
    pinMode(RSTMT, OUTPUT); //RES
    pinMode(CSMT, OUTPUT); //CS
    pinMode(DATMT, OUTPUT); //DAT
    pinMode(STBMT, OUTPUT); //STB
    //Инициализация клавиатуры
    keyboard.begin( DATAPIN, IRQPIN );
    //Инициализация MT8816
    SetAddr(0);
    digitalWrite(RSTMT, LOW);
    digitalWrite(CSMT, LOW);
    digitalWrite(DATMT, LOW);
    digitalWrite(STBMT, LOW); //инициализация
    digitalWrite(CSMT, HIGH); //выбор чипа
    digitalWrite(RSTMT, HIGH);
    digitalWrite(RSTMT, LOW); //сброс
    digitalWrite(CSMT, LOW);
    }
    void SetAddr(uint8_t addr) {
    digitalWrite(AX0,bitRead(addr,0));
    digitalWrite(AX1,bitRead(addr,1));
    digitalWrite(AX2,bitRead(addr,2));
    digitalWrite(AX3,bitRead(addr,3));
    digitalWrite(AY0,bitRead(addr,4));
    digitalWrite(AY1,bitRead(addr,5));
    digitalWrite(AY2,bitRead(addr,6));
    }
    void SetKey(boolean data){
    digitalWrite(CSMT, HIGH); //выбор чипа
    digitalWrite(STBMT, HIGH); //строб on
    digitalWrite(DATMT, data); //данные
    digitalWrite(STBMT, LOW); //строб off
    digitalWrite(CSMT, LOW);
    }
    void loop()
    {
    if( keyboard.available() ){
    int c = keyboard.read(); //чтение кода
    switch (c) {
    case 0x7E: //если считался код 0x7E
    digitalWrite(CSMT, HIGH); //выбор чипа
    digitalWrite(RSTMT, HIGH);
    digitalWrite(RSTMT, LOW); //сброс
    digitalWrite(CSMT, LOW);
    break;
    case 0x07:
    qwerty = !qwerty;
    case 0xE0: //если считался префикс 0xE0
    break;
    case 0xF0: //если считался префикс 0xF0 (отпускание клавиши)
    d = LOW;
    break;
    default:
    if (qwerty) SetAddr(t_qwerty[c]);
    else SetAddr(table[c]);
    SetKey(d);
    d = HIGH;
    }
    }
    }
    [свернуть]

  11. #39
    Master Аватар для Xrust
    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    906
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    surinm, попробуйте сделать qwerty volatile.

  12. #40
    Activist
    Регистрация
    20.12.2016
    Адрес
    г. Москва
    Сообщений
    376
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust Посмотреть сообщение
    surinm, попробуйте сделать qwerty volatile.
    добавил, но думаю это не из-за этой директивы. Думаю, что это было из-за множественных нажатий в мозгу контроллера. Добавил переменную, которая переключает только один раз, дальше ждет нажатия другой клавиши, после этого заработало как надо. Финальную прошивку с переключением раскладок выложил в первом посте, также расширил комментарии к прошивке.

    - - - Добавлено - - -

    Цитата Сообщение от Xrust Посмотреть сообщение
    caro, там Х выходы некоторые перепутаны. Сейчас найду картинку, сфоткаю и скину.
    Там в даташите дальше в таблице установки состояний тоже косячек, выводы тоже перепутаны.

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 34
    Последнее: 24.11.2022, 16:05
  2. Ответов: 146
    Последнее: 31.05.2020, 19:00
  3. Ответов: 28
    Последнее: 06.06.2018, 15:28
  4. Контроллер клавиатуры для Скорпиона
    от Nikolaj Amosov (500:812/02.26) в разделе Scorpion
    Ответов: 1
    Последнее: 15.11.2005, 23:05

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •