очень себе таки и можно.....например повесить на АЦП или на компаратор ... или на ногу захвата таймера.....это всё тоже косвенные возможности реагировать мгновенно на внешнее событие
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Заголовок сообщения: Re: RC-5 без использования внешнего прерывания (?)
Добавлено: Вс авг 05, 2012 04:33:48
Встал на лапы
Зарегистрирован: Чт мар 05, 2009 08:15:25 Сообщений: 93
Рейтинг сообщения:0
Ясно, спасибо... Просто до паяльника смогу добраться только в конце недели, а железка лежит себе рядом, так и просит запрограммироваться. Только вот ИК-датчик повесил по дурости куда придется, а не на прерывание...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
можно программно - заводите опорный таймер на 10..50кГц и в прерывании опрашивайте вход. считайте длительность постоянного уровня до изменения на входе, эти длительности декодируйте в 0/1 и складывайте в буфер. по заполнению буфера нужным числом перепадов - получите код посылки.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
можно программно - заводите опорный таймер на 10..50кГц и в прерывании опрашивайте вход. считайте длительность постоянного уровня до изменения на входе, эти длительности декодируйте в 0/1 и складывайте в буфер. по заполнению буфера нужным числом перепадов - получите код посылки.
+1 Я именно так и делал. Мало того, если контроллер особо ни чего не делает, просто дождаться команды и чегото там вкл\выкл, то можно и без таймера, прям в основном цикле задержками организовать опрос входа и обработку данных.
С RC5 еще не сталкивался, но Sony (протокол SIRC), и Samsung (протокол NEC/JVC или похожий) декодируется на ура. Можно сделать дополнительную прослойку-декодер в общую кодировку - тогда можно совместить в одном куске работу с пульта и локальной клавиатуры.
Заголовок сообщения: Re: RC-5 без использования внешнего прерывания (?)
Добавлено: Вс авг 05, 2012 20:09:06
Встал на лапы
Зарегистрирован: Чт мар 05, 2009 08:15:25 Сообщений: 93
Рейтинг сообщения:0
МК 8535, порты внешних прерываний не заняты, но по глупости при проектировке запаял дитчик не туда. А до паяльника смогу добраться только к середине недели...
МК 8535, порты внешних прерываний не заняты, но по глупости при проектировке запаял дитчик не туда. А до паяльника смогу добраться только к середине недели...
На какую ногу запаял, какие на ней есть аппаратные функции, может через них можно и аппаратно следить?
Этот пин вроде, можно использовать как внешнее прерывание захвата счетчика таймера1, вектор прерывания TIMER1 CAPT указываешь на свою процедуру, и делай там че хочешь. Ну естественно нужно настроить соотв. регистры управления, чтобы прерывания срабатывали.
Заголовок сообщения: Re: RC-5 без использования внешнего прерывания (?)
Добавлено: Пн авг 06, 2012 14:18:22
Встал на лапы
Зарегистрирован: Чт мар 05, 2009 08:15:25 Сообщений: 93
Рейтинг сообщения:0
Хм... Пульт оказался мертвым... Выдавал всегда только одиночный импульс и не повторялся. Взял другой пульт, он оказался с протоколом NEC. Взял примеры в инете, но ни как не могу победить их. Складывается такое ощущение, что таймер не так запускаю. Подскажите, пожалуйста, ошибку.
// External Interrupt(s) initialization // INT0: On // INT0 Mode: Any change GICR|=0x40; MCUCR=0x01; MCUCSR=0x00; GIFR=0x40;
По закомментированным кускам в прерывании видно, что я пытался отследить, какое значение имеет TCNT0, но он всегда возвращал "0", и в случае TCNT0/10 и в случае TCNT0/100
Подскажите, где я опять споткнулся?
А ещё был бы очень благодарен за ссылку на статью о таймерах и рассчете их таймингов. К примеру, таймер установлен на 15кГц. Это он переполняться будет с частотой 15кГц, или инкрементировать счетчик?
По закомментированным кускам в прерывании видно, что я пытался отследить, какое значение имеет TCNT0, но он всегда возвращал "0", и в случае TCNT0/10 и в случае TCNT0/100
Подскажите, где я опять споткнулся?
А ещё был бы очень благодарен за ссылку на статью о таймерах и рассчете их таймингов. К примеру, таймер установлен на 15кГц. Это он переполняться будет с частотой 15кГц, или инкрементировать счетчик?
Когда таймер ловишь при переполнении, то он всегда будет выдавать "0", потому что он переполнился, по нулю в таймере и определяется его переполнение, тут надо расчитывать значение таймера "от обратного", т.е. 256 минусуем то что нужно и остается столько, сколько нужно записать в TCNT0. Частота таймера: Частота МК делим на прескалер и делим на (256 минус значение TCNT0)
Заголовок сообщения: Re: RC-5 без использования внешнего прерывания (?)
Добавлено: Пн авг 06, 2012 16:08:57
Встал на лапы
Зарегистрирован: Чт мар 05, 2009 08:15:25 Сообщений: 93
Рейтинг сообщения:0
Ловлю не при переполнении таймера, а по внешнему прерываиню, срабатывающему от ИК-датчика. Там по коду даже мне понятно как устроено, только вот не работает ни черта
Какая частота МК и что за МК? А то вот эти две вещи как-то несовместимы: .... if (evt_cnt == 0) TCCR0=4; //Если первое событие включаем счетчик, 15.625КГц .... TCCR2=0b00000100; //250 kHz ....
ATmega16 прескалер для таймера0, таймера1: 001=1:1, 010=1:8, 011=1:64, 100=1:256, 101=1:1024
прескалер для таймера2: 001=1:1, 010=1:8, 011=1:32, 100=1:64, 101=1:128, 110=1:256, 111=1:1024
Заголовок сообщения: Re: RC-5 без использования внешнего прерывания (?)
Добавлено: Пн авг 06, 2012 17:24:23
Встал на лапы
Зарегистрирован: Чт мар 05, 2009 08:15:25 Сообщений: 93
Рейтинг сообщения:0
zero648 писал(а):
Какая частота МК и что за МК? А то вот эти две вещи как-то несовместимы: .... if (evt_cnt == 0) TCCR0=4; //Если первое событие включаем счетчик, 15.625КГц .... TCCR2=0b00000100; //250 kHz ....
ATmega16 прескалер для таймера0, таймера1: 001=1:1, 010=1:8, 011=1:64, 100=1:256, 101=1:1024
прескалер для таймера2: 001=1:1, 010=1:8, 011=1:32, 100=1:64, 101=1:128, 110=1:256, 111=1:1024
Как не совместимы? Прискалер для таймера0 и таймера2 как бы...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения