AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
26.08.2012, 21:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: RC5+atmega 8
вот что получилось. Там я на ЖК вывел себе все интервалы. 2 МГц микруха пашет. 250 000 таймер выставил. подключение такое. ИК на 5 вольт питание. Выход сразу на ножку МК и там на выходе светодиод параллельно подключен(на минус через резистор) чтоб дублировать визуально мерцание при нажатии кнопки на пульте. Из четырех пультов только 3 стабильно почти. Один какойто глючный совсем. У меня два пульта от тюнера авермедиа. Комп оба принимает сигнал и оба декодируются хорошо. Редко ошибки. А два еще от ФМ-модулятора в машине. Оба одинаковые, но один работает оч плохо. Чуть позже сделаю для проверко управление яркостью светодиода потом отпишусь. Огромное спасибо Flopix и за статью omercury
|
|
|
|
26.08.2012, 22:09
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: RC5+atmega 8
miwutka, светодиод нагружать на выход ИК датчика это очень плохая идея. Отключите его. Посмотрите в даташите на свой приемник рекомендуемую схему включения. Там питание желательно подключать к 5В через резистор около 100 Ом, а после него параллельно питанию электролит. конденсатор на 10 или более мкФ, для фильтрации помех по питанию.
И еще. Если пульт все таки имеет протокол RC5 то этот алгоритм не подходит в принципе. Для анализа проблемы нужно все таки разкоментировать цикл вывода временных задержек, чтобы посмотреть всю последовательность принимаемого сигнала, иначе будете гадать еще очень долго.
Но для начала отключите светодиод и проверьте еще раз работу устройоства со всеми своими пультами.
Последний раз редактировалось Flopix; 26.08.2012 в 22:22.
|
|
|
|
26.08.2012, 22:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от miwutka
|
Выход сразу на ножку МК и там на выходе светодиод параллельно подключен(на минус через резистор)
|
ОБЯЗАТЕЛЬНО нагрузить TSOP резистором на 10к с выхода на +5в. Светодиод можно (но не желательно) поставить параллельно нагрузочному резистору со своим токоограничительным резистором не менее 1к.
У TSOP выход с открытым коллектором.
|
|
|
|
26.08.2012, 22:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от omercury
|
У TSOP выход с открытым коллектором
|
Там есть резистор, меряется тестером между выходом и плюсом.
По крайней мере для TSOP322.., TSOP324.., TSOP348.., TSOP344
__________________
Мелочи не решают главного. Они решают всё!
|
|
|
|
26.08.2012, 22:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от gary2007
|
Там есть резистор
|
Возможно, но как-то не надеюсь я на внутреннюю подтяжку...
Да и все производители бытовой техники со мной солидарны...
|
|
|
|
26.08.2012, 23:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: RC5+atmega 8
на всех пультах стало всё четко. Спасибо. Команда четко, а вот адрес - а1 четко, а2 то 254 то 255. на другом пульте а2 то 197 то 196 на разных кнопках. но на одной и тойже кнопке не прыгает число. Значит дело в подключении ИК-датчика было. Еще такой вопрос: а как понять какой бит отвечает за состояние кнопки, нажата или нет? Там же есть какой-то бит который инвертируется при каждом нажатии кнопки... Или как самому определать нажата или нет кнопка? Самому завести байтовую переменную?
|
|
|
|
26.08.2012, 23:44
|
|
Гражданин KAZUS.RU
Регистрация: 13.04.2012
Адрес: Королёв МО
Сообщений: 786
Сказал спасибо: 621
Сказали Спасибо 364 раз(а) в 200 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от miwutka
|
.......Там же есть какой-то бит который инвертируется при каждом нажатии кнопки.........
|
Здесь достаточно подробно всё расписано. А нажата кнопка или нет проще сделать по тайм-ауту приёма посылки. 1,5 времени ничего нет - отпущена.
Последний раз редактировалось Albert_V; 26.08.2012 в 23:46.
|
|
|
|
26.08.2012, 23:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от miwutka
|
на всех пультах стало всё четко. Спасибо. Команда четко, а вот адрес - а1 четко, а2 то 254 то 255. на другом пульте а2 то 197 то 196 на разных кнопках. но на одной и тойже кнопке не прыгает число. Значит дело в подключении ИК-датчика было. Еще такой вопрос: а как понять какой бит отвечает за состояние кнопки, нажата или нет? Там же есть какой-то бит который инвертируется при каждом нажатии кнопки... Или как самому определать нажата или нет кнопка? Самому завести байтовую переменную?
|
Так и не заглянул в мой текст. Там есть и работа с битом повтора. Хозяин - барин...
Впрочем, тебе указали уже, где читать..
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
26.08.2012, 23:57
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: RC5+atmega 8
Самое смешное что в коде который сейчас использует miwutka тоже есть переменная отвечающая за повтор.
unsigned char pult_state;
когда ничего не нажато она равна PULT_NONE
если нажата клавиша PULT_PRESS_KEY
если клавиша удерживается PULT_REPEAT_KEY
эти константы заданы как
#define PULT_NONE 0
#define PULT_PRESS_KEY 1
#define PULT_REPEAT_KEY 2
ну а в pult_c1 содержится код клавиши
Если контролироваться код клавиши будет в основном цикле программы то таймаут так просто ставить нежелательно, можно пропустить нажатие клавиши.
Лучше периодически проверять переменную pult_state, если она равна PULT_PRESS_KEY или PULT_REPEAT_KEY, выполнить необходимое действие и присвоить pult = PULT_NONE
И тогда в блоке
PHP код:
|
if (cnt == 32)//принят весь код { pult_state = PULT_PRESS_KEY; //SendPacketToUSB(1, 3); }
|
Желательно сразу же присвоить переменную pult_c1 какой нибудь новой глобальной переменно. Чтобы не получилось, что когда в main() программа читает значение переменной она заполнена не полностью так как принимается новая клавиша.
Последний раз редактировалось Flopix; 27.08.2012 в 00:14.
|
|
|
|
27.08.2012, 08:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: RC5+atmega 8
Сообщение от ut1wpr
|
Так и не заглянул в мой текст. Там есть и работа с битом повтора. Хозяин - барин...
Впрочем, тебе указали уже, где читать..
|
в код заглянул, скачал и он постоянно висит у меня открытый Этот (мой) код надо оптимизировать, так что еще предстоит изучить Ваш код
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Декодер RC5
|
vmax1987 |
Микроконтроллеры, АЦП, память и т.д |
38 |
25.08.2010 22:26 |
RC5 transmitter
|
Saadov |
Микроконтроллеры, АЦП, память и т.д |
12 |
22.12.2008 21:08 |
Приемник RC5 в малом корпусе?
|
Muzicant |
Микроконтроллеры, АЦП, память и т.д |
1 |
17.02.2008 11:57 |
Совмещение динамической индикации и приема команд RC5
|
megAdriVeR |
Микроконтроллеры, АЦП, память и т.д |
22 |
24.07.2007 21:18 |
Декодирование команд RC5
|
R_V_A |
Микроконтроллеры, АЦП, память и т.д |
10 |
20.12.2006 19:52 |
Часовой пояс GMT +4, время: 19:07.
|
|