User Tag List

Показано с 1 по 10 из 1199

Тема: Орион-2010. Hard & Soft

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    сейчас pvlad закидает меня помидорами
    Может забудем про клавиатуру? Есть как есть...
    Да нет! Все норимально! Просто Сергей, слету, не придумал алгоритм. Я ему подскажу. Это алгоритм для одной кнопки, поэтому будем иметь ввиду, что разговор идет об одном и том же символе.
    И так, после нажатия символьной клавиши, входим в прерывание и выдаем символ и по таймеру 50гц. запускаем счетчик на 2-3сек. При обработке очередного прерывания таймера, проверяем не появился ли ноль (клавиша отпущена?) и уменьшаем счетчик. Если счетчик отсчитал 2-3 сек и клавиша не отпущена, то выдается снова символ. Если счетчик не досчитал, а появился ноль, то сбрасываем счетчик и заканчиваем процедуру вывода символа.
    Продолжим: счетчик отсчитал 2-3 сек (через вычитание - так проще программно обрабатывать) и клавиша не отжата - выдаем следующий символ, и запускаем новый счетчик по таймеру 0,5 сек (понятно, что это программные счетчики). И вот мы каждые 0,5 сек теперь проверяем отпущена ли клавиша (не забываем перезапустить счетчик на следующие 0,5сек!), и если нет, то снова выводим символ. Если при очередном прерывании (0,5 сек) таймера окажется, что клавиша отжата (в порту - ноль), то сбрасываем все счетчики, ячейки и т.д., и ждем следующего нажатия новой клавиши, и - прерывания от PS/2. Примерно, так!
    Конечно плохо, что нет аппаратного таймера (я предлагал!), хотя бы 8-разрядного. Если брать (округленно) 20 мл.сек х 256=5сек! Он очень упростил бы весь алгоритм драйвера - достаточно было бы запихивать в него константу и ждать прерывание. А так придется использовать прерывание 50гц (20 млсек). и крутить программные счетчики (3-4!). Придется помудохаться и с манипуляцией счетчиками!

    P.S. Наверное раз 20 переделывал этот текст, чтобы было по-понятней. Не знаю - удалось? Если что-то не понятно - спрашивайте.
    Последний раз редактировалось pvlad; 30.06.2010 в 00:41.
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

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

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

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

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

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

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