Коды для пультов на attiny13
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Коды для пультов на attiny13
Здравия желаю
В общем у меня два вопроса достаточно простых но мне непонятных:
1. Как их переводить в код для пульта?
2. Реально ли совместить коды двух разных пультов (но оба NEC)?
1. Вот есть данные одного пульта в lirc и второго вот таким скриншотом 2. собственно и хотелось бы по паре кнопок обоих уместить в одном пульте. или может нажатием одновременным двух кнопок переключаться
Подскажите кто чем может. По первому пункту хотя бы. С уважением,
В общем у меня два вопроса достаточно простых но мне непонятных:
1. Как их переводить в код для пульта?
2. Реально ли совместить коды двух разных пультов (но оба NEC)?
1. Вот есть данные одного пульта в lirc и второго вот таким скриншотом 2. собственно и хотелось бы по паре кнопок обоих уместить в одном пульте. или может нажатием одновременным двух кнопок переключаться
Подскажите кто чем может. По первому пункту хотя бы. С уважением,
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Коды для пультов на attiny13
Кого их? Осциллограммы?Как их переводить в код для пульта?
Сначала прочитать вот эту статью, а потом переводить.
Длинная пауза - единица, короткая пауза - ноль. В твоём скриншоте осциллограмма не до конца, только первые 28 бит: 00110011 (младший бит адреса) 10111000 (старший байт адреса) 00000000(команда) 1111 (младшие 4 бита инвертированной команды). Все байты задом наперёд. Последние 4 бита не видно, но они тоже должны быть единицы.
Конечно. Вычислил коды команд, да и подставляй их куда надо.Реально ли совместить коды двух разных пультов (но оба NEC)?
С уважением, администрация сайта.
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Re: Коды для пультов на attiny13
Спасибо, статью как-то пропустил.
В итоге для того, что на скрине будем иметь:
А младший байт инвертированной команды...?
И по поводу другого пульта, данные о котором есть только в lirc-базе - их как-то можно... заюзать?
В итоге для того, что на скрине будем иметь:
Код: Выделить всё
.equ AL=0b00110011 ; адрес 04h (заданный младший байт адреса) 00110011
.equ AH=0b10111000 ; адрес CBh (заданный старший байт адреса) 10111000
.equ CMD_1=0x00 ; код команды 1 00000000
А младший байт инвертированной команды...?
И по поводу другого пульта, данные о котором есть только в lirc-базе - их как-то можно... заюзать?
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Коды для пультов на attiny13
Невнимательно читал.
1. Байты передаются младшим битом вперёд. То есть правильно записанный младший байт адреса выглядит так: 11001100 = CCh, старший байт адреса: 00011101=1Dh
2. Команда однобайтная, только этот байт передаётся 2 раза - напрямую и инвертированный. Соответственно у команды нет младшего и старшего байтов. Байт команды только один.
В LIRC не настоящие коды протоколов. LIRC вообще не определяет тип протокола, она просто любой сигнал оцифровывает с какой-то своей дискретностью, заведомо большей, чем время импульсов любого пульта, что и позволяет ей работать практически со всеми типами пультов. Но это и является причиной того, что работает программа только в одну сторону. Т.е. сигналы пультов она понимает, но если коды LIRC перевести обратно в ИК-сигнал, то ни один родной приёмник их не поймёт.
P.S. Сигналы пультов достаточно просто самому отсканить. Вот здесь написано как.
1. Байты передаются младшим битом вперёд. То есть правильно записанный младший байт адреса выглядит так: 11001100 = CCh, старший байт адреса: 00011101=1Dh
2. Команда однобайтная, только этот байт передаётся 2 раза - напрямую и инвертированный. Соответственно у команды нет младшего и старшего байтов. Байт команды только один.
В LIRC не настоящие коды протоколов. LIRC вообще не определяет тип протокола, она просто любой сигнал оцифровывает с какой-то своей дискретностью, заведомо большей, чем время импульсов любого пульта, что и позволяет ей работать практически со всеми типами пультов. Но это и является причиной того, что работает программа только в одну сторону. Т.е. сигналы пультов она понимает, но если коды LIRC перевести обратно в ИК-сигнал, то ни один родной приёмник их не поймёт.
P.S. Сигналы пультов достаточно просто самому отсканить. Вот здесь написано как.
С уважением, администрация сайта.
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Re: Коды для пультов на attiny13
Ну хоть с одним пультом разобрался - уже хорошо Спасибо.
А вот отсканировать я могу только один пульт. Второго (который в лирке) нет. И универсальные пульты оказались плохими помощниками.
А вот отсканировать я могу только один пульт. Второго (который в лирке) нет. И универсальные пульты оказались плохими помощниками.
Демократии нет и не будет!
Государство - это я!
Государство - это я!
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Re: Коды для пультов на attiny13
И снова здравствуйте!
Хочу сделать матричную клавиатуру и прошу подсказки. Если я правильно понимаю должно быть примерно так:
И так для каждого случая, верно?
И второе: для переделки на тини2313, менять регистры какие надо? Так вроде посмотрел поверхностно - все нормально.
Хочу сделать матричную клавиатуру и прошу подсказки. Если я правильно понимаю должно быть примерно так:
Код: Выделить всё
Scan:
ldi w,0b00001100
; PB3 - лед. PB2 - строка. PB1 - столбец
out DDRB,w
ldi w,0b11110011
; PB3 - лед. PB2 - резистор выкл. PB1 - резистор
out PORTB,w
sbis PINB,1 ; если на входе низкий уровень - нажато
rjmp Tx_CMD1
И второе: для переделки на тини2313, менять регистры какие надо? Так вроде посмотрел поверхностно - все нормально.
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Коды для пультов на attiny13
Что-то у меня сегодня с экстрасенсорикой нелады. Не понимаю я что за лед, куда подключены столбцы и строки и как выглядят каждые случаи.
Вот есть пример матричной клавиатуры, читай, там описано подробно в чём фишка и как по очереди столбцы проверять.
Вот есть пример матричной клавиатуры, читай, там описано подробно в чём фишка и как по очереди столбцы проверять.
С уважением, администрация сайта.
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Re: Коды для пультов на attiny13
Не осилил матричную клавиатуру, решил пойти путем попроще и... опять ниасилил. Изменения внесенные в код невелики - это замена TIMSK0 на TIMSK и ноги:
И не заработало. Смысл - прижать все ноги А\Д портов к земле а Б проверять. В чем может быть проблема?
P.S. МК Attiny2313V
code
P.S. МК Attiny2313V
Демократии нет и не будет!
Государство - это я!
Государство - это я!
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Коды для пультов на attiny13
Хочется помочь, но как??? Где код??? Где
Выложи код, напиши что он должен делать по твоей задумке и что работает не так, как нужно.
Из того куска, который я вижу: PB7 - выход, остальные ноги порта B - входы. Состояние 7-й защёлки порта B =1, на остальных ногах порта включены подтягивающие резисторы (и то не факт, - неизвестно значение флага PUD в MCUCR).
Выложи код, напиши что он должен делать по твоей задумке и что работает не так, как нужно.
Из того куска, который я вижу: PB7 - выход, остальные ноги порта B - входы. Состояние 7-й защёлки порта B =1, на остальных ногах порта включены подтягивающие резисторы (и то не факт, - неизвестно значение флага PUD в MCUCR).
С уважением, администрация сайта.
-
- Читатель
- Сообщения: 12
- Зарегистрирован: 14 мар 2012, 17:35
- Откуда: Тамбов
- Контактная информация:
Re: Коды для пультов на attiny13
Прощу прощения за долгий ответ. В общем-то в предыдущем посту (посте?) я указал все изменения в коде. Т.е. в дополнение к основному я прижал PortA и PortD к земле. PortB7 это ИК-диод. Зашил в 2313 и... все сломалось
Демократии нет и не будет!
Государство - это я!
Государство - это я!