Текущее время: 29 мар 2024, 08:40 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Регистр нажатой клавиши пульта ДУ

Начать новую темуОтветить на тему Страница 1 из 2 [ Сообщений: 16 ] На страницу   1, 2  След.
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 15 июн 2006, 11:14. Заголовок сообщения:  Регистр нажатой клавиши пульта ДУ
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
Скажите пожалуйста, а какие регистры нужно читать для определения кода нажатой клавиши пульта Ду на различных чипах.
Я знаю, что на SAA7134 Регистр нажатой клавиши Word GIPIO $1b6 маска $0fc0, но с другими чипами он не работает

Заранее спасибо
Профиль WWW 
Сообщение Добавлено: 15 июн 2006, 12:04. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
Биты GPIO8-13 содержат код нажатой клавиши, бит GPIO14 – флаг готовности кода, 0 – данные готовы, 1 – данные не готовы.
Скажите, зачем вам это? Дело в том, что обработка считанных данных может немного отличаться для ранних партий тюнеров и для текущих, кроме того, привязываясь к порту GPIO вы теряете совместимость с будущими моделями тюнеров. Наша библиотека BeholdRC.dll гарантирует корректную обработку считанных данных, обеспечивает корректное распознавание модели тюнера и необходимого алгоритма работы, гарантирует совместимость с будущими моделями тюнеров, позволяет вам абстрагироваться от необходимости работы с драйвером. Кроме того, она всегда присутствует в системе вместе с родным ПО.
Профиль 
Сообщение Добавлено: 15 июн 2006, 12:38. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
Цитата:
Скажите, зачем вам это

это затем, что Ваша библиотека накладывает ограничение на использование только тюнеров Beholder (что конечно же логично:)
и не позволяет использовать использовать ее с другими моделями тюнеров, построенных на таких же чипсетах.
Хотя драйвер у Вас правильный ;)

Цитата:
Биты GPIO8-13 содержат код нажатой клавиши

не совсем понял Ваш ответ, вот например, я считываю код клавиши для SAA7134
Код:
kod:=fDrvCard.ReadWord($1b6) and $0fc0;

а откуда мне считывать биты GPIO я не понял, не могли бы Вы объяснить?

Заранее спасибо
С уважением,
Миронов Алексей
Профиль WWW 
Сообщение Добавлено: 16 июн 2006, 13:11. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
писал(а):
не позволяет использовать использовать ее с другими моделями тюнеров, построенных на таких же чипсетах.

У разных производителей ИК-декодер может быть организован совершенно по-разному. Поэтому общего алгоритма в данном случае быть не может.

писал(а):
а откуда мне считывать биты GPIO я не понял, не могли бы Вы объяснить?

Считывая данные по адресам PCI-пространства 1B4h-1B7h вы тем самым считываете данные с порта GPIO. По адресу 1B4h считываются биты 0-7 ... по адресу 1B7h биты 25-27 (не все биты порта реализованы). Вам, как уже сказано выше, нужны биты №№8-13 и 14.
Профиль 
Сообщение Добавлено: 16 июн 2006, 15:59. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
спасибо

ЗЫ. респект техподдержке за терпение и профессионализм :D
Профиль WWW 
Сообщение Добавлено: 17 июн 2006, 11:57. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
а можно еще маленький вопросик? :roll:

Цитата:
бит GPIO14 – флаг готовности кода, 0 – данные готовы, 1 – данные не готовы

этот бит - отвечает за то, нажата кнопка пульта или отжата ???

у меня регистр 1b5h возвращает разные значения, согласно нажатым клавишам, только в том случае, если параллельно запущена какая нибудь сторонняя программа сканирования GPIO (например тест из Вашего SDK), в другом случае возвращаемое значение не меняется. Я выяснил, что программа правильно возвращает значение, когда параллельно (например в другом приложении)) проходит функция GetRemoteCode из Вашей библиотеки. Такое впечатление, что для того, чтобы в регистр попали новые значения необходимо что-то сделать, разрешить им туда попасть, как будто надо флаг какой-то выставить. Вы мне не подскажете, что предпринять?


заранее спасибо за ответ
с уважением
Миронов Алексей
Профиль WWW 
Сообщение Добавлено: 19 июн 2006, 10:44. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
писал(а):
Цитата:
бит GPIO14 – флаг готовности кода, 0 – данные готовы, 1 – данные не готовы

этот бит - отвечает за то, нажата кнопка пульта или отжата ???

Да.

писал(а):
Я выяснил, что программа правильно возвращает значение, когда параллельно (например в другом приложении)) проходит функция GetRemoteCode из Вашей библиотеки. Такое впечатление, что для того, чтобы в регистр попали новые значения необходимо что-то сделать, разрешить им туда попасть, как будто надо флаг какой-то выставить.

Декодер работает совершенно автономно, всегда выдаёт данные на линии порта GPIO и никакого флага разрешения или запрещения передачи данных нет. Возможно, проблема кроется в используемом вами механизме доступа к PCI-регистрам.
Профиль 
Сообщение Добавлено: 20 окт 2006, 11:25. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
Доброе время суток, уважаемый Саппорт. Вот опять вернулся к старой теме. После некоторых стараний мне все таки удалось добиться считывания кодов нажатых клавиш используя драйвер. НО, как обычно не без сюрпризов

Цитата:
Дело в том, что обработка считанных данных может немного отличаться для ранних партий тюнеров и для текущих, кроме того, привязываясь к порту GPIO вы теряете совместимость с будущими моделями тюнеров.

Я так понимаю, что речь идет о шестой серии тюнеров, потому что именно они отказались работать с написанным мною софтом. Только мне не очень понятно почему, ведь чип тюнера остался тот же, или нет? И получается, что тюнер не выставляет значения кодов клавиш на линию GPIO? А тогда откуда их брать? (ну кроме библиотеки:)

PS. Надеюсь на Ваш, как всегда квалифицированный ответ

Заранее спасибо,
С уважением,
Миронов Алексей
Профиль WWW 
Сообщение Добавлено: 20 окт 2006, 12:15. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
писал(а):
Цитата:
привязываясь к порту GPIO вы теряете совместимость с будущими моделями тюнеров.

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

Да, правильно.

писал(а):
тюнер не выставляет значения кодов клавиш на линию GPIO?

Тюнер здесь совершенно не при чём. Данные предоставляет микросхема ИК-декодера.

писал(а):
А тогда откуда их брать? (ну кроме библиотеки:)

Скажите, а чем вас не устраивает библиотека?
Профиль 
Сообщение Добавлено: 20 окт 2006, 12:32. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
Цитата:
Скажите, а чем вас не устраивает библиотека?

в принципе всем устраивает, просто думал обойтись универсальным модулем считывания кодов клавиш для всех тюнеров на чипе SAA713x без привлечения библиотек и соответствующих дополнительных сложностей.

Получается на разных моделях тюнеров разные микросхемы ик-декодеров не зависимо от чипа?

Но все таки, ИК-декодер выдает данные не всегда по одним и тем же адресам?

Кстати библиотека обновилась, а АПИ на Вашем сайте остался прежним
Профиль WWW 
Сообщение Добавлено: 20 окт 2006, 14:28. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
писал(а):
Получается на разных моделях тюнеров разные микросхемы ик-декодеров не зависимо от чипа?

Да.

писал(а):
Но все таки, ИК-декодер выдает данные не всегда по одним и тем же адресам?

Нет. Декодер не выдаёт ничего ни по каким адресам. Есть разные способы связи периферийных микросхем с чипсетом. Адреса регистров в своём PCI-пространстве формирует чипсет. Для разных интерфейсов, естественно, разные адреса.

писал(а):
Кстати библиотека обновилась, а АПИ на Вашем сайте остался прежним

Мы же обещали полную совместимость имеющегося АПИ с любыми будущими моделями :D. АПИ как раз и разрабатывался с той целью, чтобы гарантировать работу сторонних приложений независимо от тонкостей реализации тюнера. Обновление АПИ появится в ближайшее время и затронет только поддержку других пультов.
Профиль 
Сообщение Добавлено: 20 окт 2006, 14:54. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
спасибо за терпение и внятные ответы
Профиль WWW 
Сообщение Добавлено: 25 окт 2006, 15:03. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
Цитата:
Адреса регистров в своём PCI-пространстве формирует чипсет

я просканировал все адреса PCI-пространства (h000-hFFE) но не обнаружил адресов, содержащих код нажатой клавиши. Как и в предыдущих сериях тюнеров при нажатии кнопок пульта в регистры h1B5 и h1B6 заносится значение (h4000), но оно одинаковое при нажатиях на любую кнопку, а больше ни по каким адресам никакой информации о нажатой клавише нет.

Как так может быть?
Информация о нажатой клавиши не поступает в регистры PCI-пространства чипсета? А если поступает то как?

PS. Если то, о чем я спрашиваю - закрытая информация, то Вы прямо так и скажите, чтоб я Вас не мучил наводящими вопросами:)

PSS. Прошу прощение за наглость

Заранее спасибо за ответ
С уважением,
Миронов Алексей
Профиль WWW 
Сообщение Добавлено: 26 окт 2006, 11:30. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    13 июл 2004, 13:23
Сообщения: 1089
Сейчас используется более сложный протокол двустороннего обмена данными с декодером пульта ДУ. Просто код нажатой клавиши из регистров чипсета вы не считаете.
Совершенно универсального способа работы с пультом ДУ для всех тюнеров быть не может. Конечно, во многих тюнерах код пульта получается через шину GPIO, но это не есть универсальное решение (даже не касаясь наших тюнеров). Кроме того, даже в случае с шиной GPIO возможен более сложный вариант обмена данными типа запрос/подтверждение и прочие тонкости.
Вам стоит смириться с необходимостью использовать разные алгоритмы работы с разными тюнерами. Что же касается наших тюнеров, то используемый в настоящее время протокол низкого уровня также является всего лишь частным решением и будет меняться и дальше. Поверьте, то решение, которое предлагаем мы – самое простое и надёжное, по принципу "сделал и забыл", и все дальнейшие изменения протоколов вас никак не затронут, не увеличат вашего кода, не уменьшат общности работы. Этот АПИ был специально разработан с целью избавить сторонних программистов от любой головной боли, связанной с изменениями протоколов. Мы и сейчас гарантируем, что тот АПИ, который существует, без каких бы то ни было доработок с вашей стороны будет работать на любых наших тюнерах, как имеющихся, так и будущих.
Профиль 
Сообщение Добавлено: 26 окт 2006, 12:00. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    06 дек 2004, 20:29
Сообщения: 184
спасибо,
последую Вашему совету
Профиль WWW 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 2  [ Сообщений: 16 ]  На страницу   1, 2  След.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: