luxor92 Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 Всем доброго времени суток! Имеется передатчик на частоте 433 мгц и приемник, На выводе DATA приемника появляется код в виде коротких, длинные лог единиц и нулей. Продолжительность импульсов 0,5ms примерно. (возможно удастся изменить) Вопрос: можно ли на PIC организовать распознавание такого кода. Т.е если код соответствует тому что нужно - вывести единицу на одной из ног контроллера. Если можно - то прошу дать материал по теме, как можно такое организовать с точки зрения программного кода, желательно на ассемблере. Спасибо) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 http://forum.cxem.net/index.php?showtopic=136806&st=20 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
andryxa Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 Вот нафига было создавать дубль темы? Весь инет завален нужной вам информацией, я вам дал кучу ссылок, но вы упорно клянчите готовое решение. Не хотите учится, не морочте людям голову. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
luxor92 Опубликовано 15 октября, 2015 Автор Поделиться Опубликовано 15 октября, 2015 (изменено) Вот нафига было создавать дубль темы? Весь инет завален нужной вам информацией, я вам дал кучу ссылок, но вы упорно клянчите готовое решение. Нормально я пинков наполучал) andryxa, материалы изучил, на которые были линки. Осциллограмма в процессе.. Учиться хочу.. Дубль создал, потому что здесь другая сторона вопроса (именно программирование), рассчитывал получить совет от экспертов именно по PICам, ибо программатор имеется только для этого МК, и прогу писать мне соответственно для него придется. В интернете по части того, как прочитай килок с помощью пик, увы, не нашел.. С ассемблером знакомился, знаю, что там команды проверки бита есть.. Но это в статическом режиме. исправляю сообщение, кое-что нашел по теме (поисковый запрос получше подобрал) Изменено 15 октября, 2015 пользователем luxor92 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
andryxa Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 Вам будет гораздо проще найти информацию по приему, если вы будете знать в какой кодировке работает ваш брелок. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
granick Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 luxor92, в букваре посмотрите модуль ССР(захвата/сравнения) с 16 разрядным регистром. Записываем, что хотим принять и сравниваем с поступающей последовательностью. Удачи. 0 Я не говорю панацеи - я предлагаю варианты Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 15 октября, 2015 Поделиться Опубликовано 15 октября, 2015 Вопрос: можно ли на PIC организовать распознавание такого кода. Т.е если код соответствует тому что нужно - вывести единицу на одной из ног контроллера. можно при одном условии : передающийся сторона не использует шифрование , те передается один и тот же код команды 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 16 октября, 2015 Автор Поделиться Опубликовано 16 октября, 2015 (изменено) Вот что посылает брелок, абсолютно одинаковые "пакеты", каждый по 40ms. Длинный сигнал - 1мс, короткий - 0,5. Буду пробовать разобраться с приемом на мк.. Интересно, что на информацию о сигнале из даташита совсем не похоже.. Кода синхронизации не видно... Кстати, в схеме резистор генератора 220k стоит почему-то заместо мегаомных, Изменено 16 октября, 2015 пользователем luxor92 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 16 октября, 2015 Поделиться Опубликовано 16 октября, 2015 ослик в режим постоянного тока переведи.... а то хрень какая-то на эпюрах.... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
andryxa Опубликовано 16 октября, 2015 Поделиться Опубликовано 16 октября, 2015 Если нашли пдф, выложите сюда посмотреть. На картинке по моему сигнал инвертирован (при записи нужно поменять полярность). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mrProfy Опубликовано 16 октября, 2015 Поделиться Опубликовано 16 октября, 2015 (изменено) 24 бита, 20 - адрес, 4 - код команды. А это именно первый пакет после нажатия кнопки? Может он передает код синхронизации только первый раз, а повторы без стартовой синхронизации? LX1527_en.pdf Изменено 16 октября, 2015 пользователем mrProfy 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mrProfy Опубликовано 16 октября, 2015 Поделиться Опубликовано 16 октября, 2015 Блин, предыдущие ораторы правы) Сигнал инвертирован, синхронизация есть, но из-за измерения осциллографом на режиме AC ноль(у вас единица) что длится 124 цикла - сглаживается 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
andryxa Опубликовано 16 октября, 2015 Поделиться Опубликовано 16 октября, 2015 Ищите в интернете примеры для приема keeloq, останется только выбросить из кода ожидание преамбулы и изменить временные интервалы. Ну и принимать не 64 а 20 бит. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 17 октября, 2015 Автор Поделиться Опубликовано 17 октября, 2015 Да, действительно. Код синхронизации есть. "Ослик" в режим DC+AC перевести нет возможности, т.к пишу сигнал через звуковую карту, похоже что разделительный конденсатор стоит, если даже и нет - в единственной программе, которая на моем Win7 x64 работает - нет этого переключателя.. Зато можно "выравать" нужный кусочек с помощью аналогового осциллографа.. Вот сигнал с правильной полярностью (интересно, почему в вебкамере в контактах микрофона, через который входной сигнал подключал, + и - были перепутаны).. Здесь хорошо проглядывается синхронизация: Кстати, синхронизация есть меж каждым пакетом. Первый раз ее видно явно, остальные разы она представляет собой конец одного пакета и промежуток меж пакетами. Вот снимок с реального осциллографа DC+AC, где синхронизация не искажена. 0000 1110 0111 1010 1000 1011 Уже что-то, дело осталось "за малым" - написать программу 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 17 октября, 2015 Поделиться Опубликовано 17 октября, 2015 а шо там писать по нарастаюшиму фронту INT запускаешь таймер1 , по спадающему читаешь значения таймера , сравниваешь полученную длительность импульса с заданной и в буфер пишешь лог0 или лог1... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 18 октября, 2015 Автор Поделиться Опубликовано 18 октября, 2015 Узучил модуль CCP, вопросов будет масса) Начнем с начала: как можно увидеть список мк с этим модулем , на сайте микрочипа нет такого критерия отбора как CCP 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 18 октября, 2015 Поделиться Опубликовано 18 октября, 2015 таки да нет... выделяете те что содержат таймер1 ( 16-разрядный) а дальше смотрите по спецификации 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 21 октября, 2015 Автор Поделиться Опубликовано 21 октября, 2015 (изменено) Запутался с флагом нулевого результата Z в STATUS... Допустим, если сравниваю константу с аккумулятором (и они равны меж собой) командой movlw 123. bcf status,z XORLW 123. чему будет равен бит Z в таком случае.. ? По книге что-то не доходит(точнее нет уверенности) с примерами как-то скользко этот момент обошли.. Пока предполагаю что z=0, если ошибся - программу неправильно пишу.. Изменено 21 октября, 2015 пользователем luxor92 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mrProfy Опубликовано 21 октября, 2015 Поделиться Опубликовано 21 октября, 2015 Мать моя женщина, неужели для пика на Си писать нельзя? Ассемблер это жестоко. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 21 октября, 2015 Автор Поделиться Опубликовано 21 октября, 2015 (изменено) хехе) так сложилось, что первое учебное пособие которое скачал по пик описывало работу на ассемблере Надеюсь до проверки в протеусе не успеет дойти) Изменено 21 октября, 2015 пользователем luxor92 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
mrProfy Опубликовано 21 октября, 2015 Поделиться Опубликовано 21 октября, 2015 (изменено) Небезызвестный DIHALT(Респект ему огромный за статейки) тоже продвигал ассемблер в массы для avr, сразу пропустил эту глупость, экономия на спичках, а время на реализацию и отладку уходит в разы больше) Изменено 21 октября, 2015 пользователем mrProfy 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 21 октября, 2015 Автор Поделиться Опубликовано 21 октября, 2015 все, затестил в протеусе, не поленился. Хорошо, что проверил, предыдущая догадка не подтвердилась. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 23 октября, 2015 Автор Поделиться Опубликовано 23 октября, 2015 Снова проблема. По какой-то причине не получается перейти в банк1, пишу для pic16f628a, перехожу установкой бита №5 в 1 в регистре STATUS для того, что бы прописать TRISA TRISB. Вот что получается: . 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
my504 Опубликовано 23 октября, 2015 Поделиться Опубликовано 23 октября, 2015 (изменено) Это не ошибки. Это СООБЩЕНИЯ. Ассемблер предупреждает о том, что переход в соответствующий банк не оформлен в виде директивы макроассемблера 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 Изменено 23 октября, 2015 пользователем my504 0 戦う前に相手のベルトの色に注目 Ссылка на комментарий Поделиться на другие сайты Поделиться
luxor92 Опубликовано 25 октября, 2015 Автор Поделиться Опубликовано 25 октября, 2015 (изменено) При работе с CCP нужно выбрать сигнал либо внешний (на OSC1 и OSC2 вешаем кварц нужной частоты) и синхронизировать его с внутренним, либо внутренний тактовый. Так вот, как определить частоту этого внутреннего тактового сигнала? В Proteus, например, она выбирается в параметрах МК в "Processor clock frequency". А в железе как ее менять? отбой, разобрался. Изменено 25 октября, 2015 пользователем luxor92 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.