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

User Tag List

Страница 23 из 23 ПерваяПервая ... 1920212223
Показано с 221 по 224 из 224

Тема: PS/2 адаптер клавиатуры для Специалиста

  1. #221
    Пользователь Специалиста Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    3,763
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я думаю нужно снять видео чтоб все меня поняли. Я написал не моргание при нажатии клавиши, а вообще глюк с морганием почти всего поля. Глюк идёт несмотря на то, что ни одна клавиша не нажата.
    https://nick-name.ru/forum/Fifan.gif
    Сайт про ПК "Специалист" и его клоны http://www.spetsialist-mx.ru/
    Web site about computer Spetsialist and its clones http://www.spetsialist-mx.ru/ (yet only in Russian)

  2. #222
    Activist Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    249
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    44 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Переместил исходники проекта на свой сайт.
    кстати - собрал адаптер, выяснил что из 6 имеющихся клавиатур работают две. полез в исходники, нашел пару багов в части работы с железом PS/2.
    собственно вот:

    //---------------------------------------------------------------------------
    // Низкоуровневые функции протокола PS/2

    #define ps2_setClock0() { PORTD.PS2_CLOCK = 0; prepared_ddrd |= (1 << PS2_CLOCK); DDRD.PS2_CLOCK = 1; }
    #define ps2_setClock1() { prepared_ddrd &= ~(1 << PS2_CLOCK); DDRD.PS2_CLOCK = 0; }

    // DataIn и DataOut не нужны - выходы с ОК, 0==Out, In==1
    #define ps2_setData0() { PORTD.PS2_DATA = 0; prepared_ddrd |= (1 << PS2_DATA); DDRD.PS2_DATA = 1; }
    #define ps2_setData1() { prepared_ddrd &= ~(1 << PS2_DATA); DDRD.PS2_DATA = 0; }

    //#define ps2_setData0() { PORTD.PS2_DATA = 0; }
    //#define ps2_setData1() { PORTD.PS2_DATA = 1; }

    #define ps2_waitClock0() { while(PIND.PS2_CLOCK); }
    #define ps2_waitClock1() { while(PIND.PS2_CLOCK==0); }
    #define ps2_waitClock() { ps2_waitClock1(); ps2_waitClock0(); }
    #define ps2_data() PIND.PS2_DATA
    #define ps2_wait() (PIND.PS2_DATA || PIND.PS2_CLOCK)

    и вот:

    // Отправить байт клавиатуре
    // Вход: v_a - байт

    void ps2_send() {
    // ps2_setDataOut();
    ps2_setData0();
    delay_us(20);
    ps2_setClock1();
    delay_us(10);
    v_j=0;
    ps2_waitClock0();
    for(v_i=0; v_i<8; v_i++) {
    delay_us(10);
    if(v_a&1) { ps2_setData1(); v_j++; } else ps2_setData0();
    v_a >>= 1;
    ps2_waitClock();
    #asm
    WDR
    #endasm
    }
    // Бит четности
    delay_us(10);
    if(v_j&1) { ps2_setData0(); } else { ps2_setData1(); }
    ps2_waitClock();
    // Стоповый бит
    delay_us(10);
    ps2_setData1();
    ps2_waitClock();

    // Пропуск ACK
    // ps2_setDataIn();

    // Лишний waitClock, из-за него не работали старые клавы
    // ps2_waitClock();

    if(ps2_data()) reboot(); // Ошибка клавиатуры. Перезагружаем её.
    ps2_waitClock1();
    ps2_transmitMode();
    #asm
    WDR
    #endasm
    }

  3. #223
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    8,419
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    35 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Народ, а на али продаются такие вот длинноногие панельки как в посте https://zx-pk.ru/threads/20586-ps-2-...l=1#post897002
    В чупа чупсе они что то не по гуманным ценам.
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51
    Группа ВКонтакте - https://vk.com/micklab

  4. #224
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    8,419
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    35 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сам себе и отвечу. Кто не сможет найти длинноногие панельки можно взять на али однорядные длинноногие - https://aliexpress.ru/item/329596270...5aa233edUiIE1t
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51
    Группа ВКонтакте - https://vk.com/micklab

Страница 23 из 23 ПерваяПервая ... 1920212223

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

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

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

Похожие темы

  1. Ответов: 144
    Последнее: 29.01.2020, 20:57
  2. Адаптер Z80->ZX-BUS
    от zx-kit в разделе Unsorted
    Ответов: 12
    Последнее: 05.10.2011, 11:35
  3. CD адаптер
    от alexsan в разделе БК-0010/0011
    Ответов: 2
    Последнее: 12.09.2011, 21:54
  4. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16
  5. Продается Лик (клон Специалиста)
    от KALDYH в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 20.02.2010, 14:29

Ваши права

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