User Tag List

Страница 13 из 25 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 245

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

  1. #121

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    У этого специалиста есть 2 неразведенных разъемы DIN5. Я на один из них повесил питание. А на второй клавиатуру по стандарту AT.

    ---------- Post added at 10:36 ---------- Previous post was at 10:35 ----------

    Цитата Сообщение от fifan Посмотреть сообщение
    Ага, будем разбираться.
    Там несчем разбираться. Тык-тык и готово. Я максимально упростил настройку.

    ---------- Post added at 10:40 ---------- Previous post was at 10:36 ----------

    Последний раз редактировалось vinxru; 07.02.2013 в 11:42.

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

  3. #122

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал еще один режим.

    После нажатия клавиши PS/2 клавиатуры происходит немедленное обновление эмулируемой клавиатуры (матрицы). Но так же в это время может произойти прерывание. Вероятность этого 1/100000, но в результате этого нажмется не та кнопка.

    Что бы это полностью предотвратить, я сделал кнопку отключения немедленного обновления. То есть обновление будет происходить только лишь по прерыванию. Сейчас это PRSCR, но в любой момент кнопку можно отключить или поменять.

    Суть вот в чем. После нажатия кнопки вызывается функция:

    Код:
      intTrigger = 0; 
      if(scanMode) {  
        v_i = PINC & 0x3F;
        v_j = c2b[v_i]; 
        v_i = c2d[v_i] | prepared_ddrd;
        if(intTrigger) return;
        DDRB = v_j, DDRD = v_i;
      } else {
        v_i = b2c[(unsigned char)PINB] | d2c[PIND & 0x33]; 
        if(intTrigger) return;
        DDRC = v_i;
      }
    А в прерывании происходит установка intTrigger = 1.

    И глюк случится, если прерывание произойдет между if(intTrigger) return и DDR =. Это всего несколько тактов ATMega. Если на это время отключать прерывания, то глючить начинает только сильнее.

    Еще я добавил в прошивку (и программу настройки) клавишу Сброс. Но пока экспериментировать не буду. Ибо у меня всего одна попытка, придется отключить перепрограммирование МК, что бы освободить дополнительный вывод, а с первого раза у меня ничего не работает.


    ---------- Post added at 14:21 ---------- Previous post was at 14:02 ----------

    Еще есть страшная мысль.

    Сейчас мне необходимо модифицировать ПЗУ монитора, что бы встроить в неё загрузчик с SD.

    Но есть еще один вариант. При нажатии на специальную кнопку, контроллер клавиатуры сам выходит в монитор и вводит коротенькую программу, с помощью директив монитора. А уже эта программа грузит данные с флешки.

    Тогда компьютер останется со стандартным ПЗУ.

    Как вам эта идея?
    Последний раз редактировалось vinxru; 08.02.2013 в 15:27.

  4. #123

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Сейчас мне необходимо модифицировать ПЗУ монитора, что бы встроить в неё загрузчик с SD.

    Но есть еще один вариант. При нажатии на специальную кнопку, контроллер клавиатуры сам выходит в монитор и вводит коротенькую программу, с помощью директив монитора. А уже эта программа грузит данные с флешки.

    Тогда компьютер останется со стандартным ПЗУ.

    Как вам эта идея?
    А не проще (если есть свободная нога) подать сигнал на магнитофонный вход? Есть вариации Специалистов без монитора, они после сброса умеют только грузить с магнитофона.

  5. #124

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Свободных ног не вообще.

    Но наверное можно использовать линию клавиатуры. Во время загрузки клава не нужна.

  6. #125

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. свободная нога есть, но её лучше задействовать под вывод сигнала сброса на плату. Ножку сброса в Атмеге не рекомендуют использовать. По крайней мере после прошивки Атмегу ещё раз перепрошить не получится. Есть лекарство - Atmega Fusebit Doctor.
    2. HardWareMan делал в Экспрессе загрузку в ОЗУ информации с SD карты. Нужно немного изменить схему с целью отключения ПЗУ.

  7. #126

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Только время появилось сесть.

    Специальный режим, о котором я писал выше, больше не нужен. Я решил проблемы одновременного вызова двух функций.

    На время выполнения функции в основном потоке я устанавливаю переменную intTrigger в единицу.

    Код:
    void updatePorts() {
      intTrigger = 1;
      ...
      intTrigger = 0;
    }
    Таким образом в прерывании я знаю, что она выполняется. И если выполняется, то выталкиваю из стека адрес возврата. И возврат из прерывания происходит в функцию, которая вызвала updatePorts().

    Код:
            OR _intTrigger, _intTrigger
            BRNE  _v3
            OUT  SREG, R8
            RETI
    ...
    _v3:    POP R28        
            POP R28
            MOV _intTrigger, R9 ; =0         
            OUT  SREG, R8
            RETI


    ---------- Post added at 20:23 ---------- Previous post was at 20:21 ----------

    Хотя глючок я все равно поймал. Если целый час нажимать случайные клавиши 10 раз в секунду, то через час случайно нажимается случайная кнопка.

    Я подозреваю, что резисторов на 9 ком недостаточно. Ставьте 4,7 ком.

  8. #127
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Хотя глючок я все равно поймал. Если целый час нажимать случайные клавиши 10 раз в секунду, то через час случайно нажимается случайная кнопка.

    Я подозреваю, что резисторов на 9 ком недостаточно. Ставьте 4,7 ком.

    И как это ты отловил случайную кнопку среди твоих же случайных кнопок, которые нажимал 10 раз в секунду (итого за час будет 10*60*60=36000)?
    Последний раз редактировалось HardWareMan; 09.02.2013 в 21:51.

  9. #128

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал массив случайных чисел. Записал его в МК. И этот же массив в тестовую программу, которую на флешку записал.

    ---------- Post added at 21:04 ---------- Previous post was at 21:00 ----------

    Цитата Сообщение от fifan Посмотреть сообщение
    Есть лекарство - Atmega Fusebit Doctor.
    Во первых, мн лень его собирать. А во вторых, МК запаян на плату. А плата запаяна в комп.

    Я рискну на прошлой версии МК. Все равно распаивать.

    ---------- Post added at 21:05 ---------- Previous post was at 21:04 ----------

    Цитата Сообщение от fifan Посмотреть сообщение
    HardWareMan делал в Экспрессе загрузку в ОЗУ информации с SD карты. Нужно немного изменить схему с целью отключения ПЗУ.
    Была у меня мысль скомпилировать PetitFS под 8080. С одной стороны круто, что не нужен МК. Но я хочу помимо всего запустить CP/M. А там нет свободной памяти.

  10. #129
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Сделал массив случайных чисел. Записал его в МК. И этот же массив в тестовую программу, которую на флешку записал.
    Т.е., ты эмулировал нажатия программой того же контроллера, который и проверял? Или все же другим контроллером по PS/2 посылал?

  11. #130

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Т.е., ты эмулировал нажатия программой того же контроллера, который и проверял?
    ага.

Страница 13 из 25 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 153
    Последнее: 16.12.2021, 19:07
  2. Адаптер Z80->ZX-BUS
    от zx-kit в разделе Несортированное железо
    Ответов: 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

Ваши права

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