Albert_V писал(а):Вполне возможно, что достаточно будет с частотой 3906,25Hz (Timer0) опрашивать вход с RF модуля....
pvg_79 писал(а): я понимаю, что делать надо через таймер. Но как???
Если опросом, то по переполнению Т0 (каждые 256 мкс) в прерывании читаете состояние порта и задвигаете его состояние в переменную, после 8 переполнений переходите к следующей и т.д. Но не зная примерное время посылок, вы не будете знать, когда следует считать прием законченным.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Типа, их только Микрочип выпускает ?
Да после того, как keeloq был взломан, их выпускают все, кому не лень.
Соответственно, и маркировку могут ставить свою, напрочь от балды.
килук не был взломан и никто его никогда не взломает. Да, можно спереть ключи шифрования, но это не значит что взломали.
Этот пульт, он вообще от чего? Как что покупался? Вроде название китайское какое-то. Если он китайский от какого-нибудь многоканального реле, то там просто статичный код.
Эээ, вообще - насрать.
Вы сейчас шашечки рисуете. Я предлагаю ехать.
Расположение пинов на фотографии :
1 - вход кнопки
4 - вход кнопки, а не минус питания, как в 99% 8-ногих чипов.
6 - выход на ВЧ-генератор
8 - плюс питания
Кстати на восьминогих чипах питание на 1-ой и 8-ой ногах. Но дело даже не в этом, зачем вообще между ними параллель проводить, если энкодеры это не микроконтроллеры в общем понимании. Я прекрасно понимаю, что там совпала разводка, может это действительно какой-нибудь hcs, но выяснить динамический там код или статичны можно просто подключив анализатор прямо к выходу этой микросхемы, и сразу станет понятно после двух нажатий на кнопку. Если автор это проделает, то узнаем, а какой смысл гадать.
В keeloq-е можно использовать и статичную часть кода. Это 28 бит серийного номера, 268 миллионов комбинаций.
В недорогих китайских поделках именно так и делается.
Поэтому пока ТС будет искать/собирать логический анализатор, можно 10 раз скачать исходники с того же Микрочипа для "просто"-приема и дешифрации (не декодирования) и удостовериться, keeloq там или что другое.
Заодно и посмотреть, как вообще люди работают с сигналами, принятыми по радиоканалу.
В плане общего развития.
Подскажите, по написанию алгоритма и настройке МК.
GPIE - Разрешение прерывания по изменению сигнала GPIO, я правильно понимаю что прерывание срабатывает на изменение 0>1 и 1>0, то есть каждый раз когда переходит из состояния 1 в состояние 0 и наоборот.
И второй вопрос как настроить TMR0 так, чтобы можно произвести замер импульса длиной 960 и 320 микро секунд (us).
Получится реализовать алгоритм:
1. при изменении состояния сигнала из 0 в 1 включить таймер.
2. при возврате сигнала в 0 считать состояние таймера и выключить, так можно узнать длину импульса 320us - лог. 1 или 960us - лог. 0.
Или прерывание не будет успевать отработать до появление следующего импульса.
Я повторю, пожалуй : поскольку там с приемника идет постоянный "меандр" (как вы писали, а в реальности - просто шум эфира, усиленный до прямоугольников), нет смысла уходить в прерывания по каждому фронту этого шума.
Поэтому сначала ждете длинную преамбулу - постоянный уровень сигнала с приемника (0 или 1 в течении значительно бОльшего времени, нежели обычный шум), а только потом обрабатываете хедер и сам код.
Можно и на прерываниях, можно и без них - это уже без разницы.
А объяснять "написание алгоритма" и как именно обрабатывается манчестерское кодирование радиосигнала (а в подавляющем большинстве современных брелоков используется именно оно) - это переписывать одну из 100500 статей, которые уже есть в сети.
pvg_79 писал(а):
GPIE - Разрешение прерывания по изменению сигнала GPIO, я правильно понимаю что прерывание срабатывает на изменение 0>1 и 1>0, то есть каждый раз когда переходит из состояния 1 в состояние 0 и наоборот.
Да.
pvg_79 писал(а):И второй вопрос как настроить TMR0 так, чтобы можно произвести замер импульса длиной 960 и 320 микро секунд (us).
Если используется внутренний генератор, значит частота Fosc=4 МГц. Частота м.ц. Fosc/4=1 МГц.
Значит период T = 1/f = 1/1000000 Гц = 0.000001 с = 1мкс. Таймер 8-битный, стало быть считает от 0 до 255, после чего при переходе на 0 возникает переполнение. Если посмотрите ДШ на МК, то увидите там регистр OPTION_REG.
Ну а дальше считайте, наводку я дал
pvg_79 писал(а):
...
Или прерывание не будет успевать отработать до появление следующего импульса.
Ответ выше.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.