Перейти к содержанию

Чтение Кода С Помощью Pic


luxor92

Рекомендуемые сообщения

Всем доброго времени суток!

Имеется передатчик на частоте 433 мгц и приемник, На выводе DATA приемника появляется код в виде коротких, длинные лог единиц и нулей. Продолжительность импульсов 0,5ms примерно. (возможно удастся изменить)

Вопрос: можно ли на PIC организовать распознавание такого кода. Т.е если код соответствует тому что нужно - вывести единицу на одной из ног контроллера. Если можно - то прошу дать материал по теме, как можно такое организовать с точки зрения программного кода, желательно на ассемблере. Спасибо)

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Вот нафига было создавать дубль темы? Весь инет завален нужной вам информацией, я вам дал кучу ссылок, но вы упорно клянчите готовое решение.

Нормально я пинков наполучал)

andryxa, материалы изучил, на которые были линки. Осциллограмма в процессе.. Учиться хочу.. Дубль создал, потому что здесь другая сторона вопроса (именно программирование), рассчитывал получить совет от экспертов именно по PICам, ибо программатор имеется только для этого МК, и прогу писать мне соответственно для него придется. В интернете по части того, как прочитай килок с помощью пик, увы, не нашел.. С ассемблером знакомился, знаю, что там команды проверки бита есть.. Но это в статическом режиме.

исправляю сообщение, кое-что нашел по теме (поисковый запрос получше подобрал)

Изменено пользователем luxor92
Ссылка на комментарий
Поделиться на другие сайты

luxor92, в букваре посмотрите модуль ССР(захвата/сравнения) с 16 разрядным регистром. Записываем, что хотим принять и сравниваем с

поступающей последовательностью.

Удачи.

Я не говорю панацеи - я предлагаю варианты

Ссылка на комментарий
Поделиться на другие сайты

Вопрос: можно ли на PIC организовать распознавание такого кода. Т.е если код соответствует тому что нужно - вывести единицу на одной из ног контроллера.

можно при одном условии : передающийся сторона не использует шифрование , те передается один и тот же код команды
Ссылка на комментарий
Поделиться на другие сайты

Вот что посылает брелок, абсолютно одинаковые "пакеты", каждый по 40ms. Длинный сигнал - 1мс, короткий - 0,5.

post-137239-0-05019500-1445003316_thumb.jpg

post-137239-0-26254700-1445003335_thumb.png

Буду пробовать разобраться с приемом на мк..

Интересно, что на информацию о сигнале из даташита совсем не похоже.. Кода синхронизации не видно... Кстати, в схеме резистор генератора 220k стоит почему-то заместо мегаомных,

Изменено пользователем luxor92
Ссылка на комментарий
Поделиться на другие сайты

24 бита, 20 - адрес, 4 - код команды.

А это именно первый пакет после нажатия кнопки? Может он передает код синхронизации только первый раз, а повторы без стартовой синхронизации?

LX1527_en.pdf

Изменено пользователем mrProfy
Ссылка на комментарий
Поделиться на другие сайты

Блин, предыдущие ораторы правы)

Сигнал инвертирован, синхронизация есть, но из-за измерения осциллографом на режиме AC ноль(у вас единица) что длится 124 цикла - сглаживается

Ссылка на комментарий
Поделиться на другие сайты

Ищите в интернете примеры для приема keeloq, останется только выбросить из кода ожидание преамбулы и изменить временные интервалы. Ну и принимать не 64 а 20 бит.

Ссылка на комментарий
Поделиться на другие сайты

Да, действительно. Код синхронизации есть. "Ослик" в режим DC+AC перевести нет возможности, т.к пишу сигнал через звуковую карту, похоже что разделительный конденсатор стоит, если даже и нет - в единственной программе, которая на моем Win7 x64 работает - нет этого переключателя..

Зато можно "выравать" нужный кусочек с помощью аналогового осциллографа..

Вот сигнал с правильной полярностью (интересно, почему в вебкамере в контактах микрофона, через который входной сигнал подключал, + и - были перепутаны)..

post-137239-0-55723100-1445079197_thumb.jpg

Здесь хорошо проглядывается синхронизация:

post-137239-0-99846800-1445079250_thumb.jpg

Кстати, синхронизация есть меж каждым пакетом. Первый раз ее видно явно, остальные разы она представляет собой конец одного пакета и промежуток меж пакетами.

Вот снимок с реального осциллографа DC+AC, где синхронизация не искажена.

post-137239-0-87449500-1445079640_thumb.gif

0000 1110 0111 1010 1000 1011

Уже что-то, дело осталось "за малым" - написать программу :spiteful:

Ссылка на комментарий
Поделиться на другие сайты

а шо там писать по нарастаюшиму фронту INT запускаешь таймер1 , по спадающему читаешь значения таймера , сравниваешь полученную длительность импульса с заданной и в буфер пишешь лог0 или лог1...

Ссылка на комментарий
Поделиться на другие сайты

Узучил модуль CCP, вопросов будет масса) Начнем с начала: как можно увидеть список мк с этим модулем , на сайте микрочипа нет такого критерия отбора как CCP

Ссылка на комментарий
Поделиться на другие сайты

Запутался с флагом нулевого результата Z в STATUS...

Допустим, если сравниваю константу с аккумулятором (и они равны меж собой) командой

movlw 123.

bcf status,z

XORLW 123.

чему будет равен бит Z в таком случае.. ? По книге что-то не доходит(точнее нет уверенности) с примерами как-то скользко этот момент обошли.. Пока предполагаю что z=0, если ошибся - программу неправильно пишу..

Изменено пользователем luxor92
Ссылка на комментарий
Поделиться на другие сайты

хехе) так сложилось, что первое учебное пособие которое скачал по пик описывало работу на ассемблере :)

Надеюсь до проверки в протеусе не успеет дойти)

Изменено пользователем luxor92
Ссылка на комментарий
Поделиться на другие сайты

Небезызвестный DIHALT(Респект ему огромный за статейки) тоже продвигал ассемблер в массы для avr,

сразу пропустил эту глупость, экономия на спичках, а время на реализацию и отладку уходит в разы больше)

Изменено пользователем mrProfy
Ссылка на комментарий
Поделиться на другие сайты

Снова проблема. По какой-то причине не получается перейти в банк1, пишу для pic16f628a, перехожу установкой бита №5 в 1 в регистре STATUS для того, что бы прописать TRISA TRISB. Вот что получается:

post-137239-0-45452100-1445561503_thumb.png

post-137239-0-04805600-1445561511_thumb.png

.

Ссылка на комментарий
Поделиться на другие сайты

Это не ошибки. Это СООБЩЕНИЯ.

Ассемблер предупреждает о том, что переход в соответствующий банк не оформлен в виде директивы макроассемблера banksel и потому он не может контролировать правильность доступа к конкретному регистру. Когда Вы сами переключаете В КОДЕ биты RP0 и RP1 регистра STATUS, ассемблер не в состоянии на этапе компиляции проверить эти биты. Адресация регистра STATUS может быть косвенная, либо маской, поэтому подобная проверка невозможна.

Адреса же самих регистров в коде не содержат старшего разряда, поскольку формат команд не вмещает этого бита. От того отличить в самом коде PORTA от TRISA невозможно, если не знать состояния RP0 и RP1.

Что бы не досаждали 302-е мессаги, достаточно в шапке листинга (под директивами объявления типа контроллера list и инклюдом inc-файла) написать строку errorlevel -302 :

list p=16f628a
#include <P16F628A.inc>
        errorlevel -302

Это отключит все мессаги с таким номером. Но можно просто не обращать на них внимания.

ЗЫ. Не занимайтесь херней с объявлением специальных регистров контроллера. Для этого есть файлы с расширением inc.

В МПЛАБЕ при создании проекта включите в ветке Header inc-файл с именем применяемого контроллера (он есть в соответствующей папке МПЛАБа). Там все регистры и биты конфига описаны.

К тому же и конфиг писать нужно масками, а не в хексе (ниже приведен пример не для 628-го контроллера, а просто для примера):

__CONFIG _CP_ON & _CPD_ON & _BOD_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC & _MCLRE_ON & _FCMEN_OFF & _IESO_OFF

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

При работе с CCP нужно выбрать сигнал либо внешний (на OSC1 и OSC2 вешаем кварц нужной частоты) и синхронизировать его с внутренним, либо внутренний тактовый. Так вот, как определить частоту этого внутреннего тактового сигнала? В Proteus, например, она выбирается в параметрах МК в "Processor clock frequency". А в железе как ее менять?

отбой, разобрался.

Изменено пользователем luxor92
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...