Помогите написать кусочек кода (C++)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
DoctorVx
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт июл 19, 2013 15:43:02

Помогите написать кусочек кода (C++)

Сообщение DoctorVx »

Товарищи знатоки помогите пожалуйста написать кусочек кода (C++) для распознования сигнала адресного кода, описание сигнала я привёл в прилагаемом файлике но на всякий случай опишу:Адресный код состоит из импульса сброса и пакета счетных импульсов, Длительность импульса сброса составляет 350 мс, счетного импульса 0,25 мс, период следования счетных импульсов 0,5 мс, пауза между импульсом сброса и пакетом счетных импульсов 50 мс. Необходимо посчитать количество счётных импульсов и выполнить проверку следующего характера: проверить является ли импульс сброса импульсом сброса или просто помехой и узнать не завершающий ли это импульс сброса в конце всей посылки.. =( что делать ума не прилажу как подловить импульс сброса и начать считать счётные импульсы, когда я начинаю проверку на принадлежность импульса сброса к своему прямому назначению то считать уже нечего.. как это сделать??? помогите пожалуйста!!!!!!!!!!! На линии откуда должны прийти импульсы постоянно гдето в районе 5 вольт поэтому я запилил через транзистор для защиты порта контроллера.... Спасибо большое откликнувшимся. :cry: :cry: :cry:
Вложения
Схема.jpg
Схема
(191.72 КБ) 460 скачиваний
Реклама
Аватара пользователя
blackx
Говорящий с текстолитом
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Re: Уважаемые Гуру AVR Помогите пожалуйста школоте

Сообщение blackx »

если хотите чтобы вам помогли, вот пара советов:

1) первым делом кратко опишите общую проблему. То есть то, к чему относится конкретный вопрос. Можно начинать со слов "Я разрабатываю ...", "У меня есть устройство для ...". Что вы делаете и для чего?
2) если уже что-то готово, кратко опишите ключевые решения, которые вы приняли при разработке, и (желательно) их причину. Каким устройством вырабатывается сигнал и почему? По какому протоколу передаются данные и какие? Зачем его нужно обрабатывать? Почему выбран именно С++, в конце концов?
3) опишите подробно конкретную проблему с которой столкнулись. Не можете написать код, потому что не умеете программировать? Проблемы с алгоритмом? С++ и ООП ваша слабость?

Подробное (но краткое!) описание задачи мотивирует людей помогать. Так как становится понятно, эта помощь не уйдет в пустоту, только потому что вы по незнанию пытаетесь, например, сделать то, что уже давно сделано, или то, что и работать никогда не будет. Вот откуда мне знать, что вы не пытаетесь программно реализовать UART, который и так уже присутствует в ATmega8?
Изображение only pure true norwegian blackx Изображение
Реклама
Аватара пользователя
DoctorVx
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт июл 19, 2013 15:43:02

Re: Помогите написать кусочек кода (C++)

Сообщение DoctorVx »

Извиняюсь за изначально кривое оформление поста =) Не ругайте сильно =)) В общем по существу.. обрабатываемый сигнал вырабатывает вызывная панель домофона =) Язык С++ выбран в виду того что половина проекта отвечающая за дальнейшую обработку расшифрованного значения написана на C++ ;-) микроконтроллер ATMEGA8 вызывная панель Eltis. Суть задачи распознать введённый на панели номер и записать его в ячейку энергонезависимой памяти. память была выбрана AT24C08. это пока всё что я могу добавить.. Очень извиняюсь если озадачил знатоков какой то ерундой.. Но мне очень нужна помощь.. :(
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Помогите написать кусочек кода (C++)

Сообщение ibiza11 »

DoctorVx писал(а):половина проекта отвечающая за дальнейшую обработку расшифрованного значения написана на C++
Вы уверены, что это С++ , а не чистый Си?
так и не понятно в чем проблема посчитать эти импульсы... в алгоритме?
пойду от малого:
Задача: нужно определить импульс сброса это или помеха?
Уточнение: чем фактически отличается импульс сброса от помехи? конечно же длительностью. если длительность импульса в пределах нормы 350мс +/- погрешность (кстати сколько она?), а пауза после него 50мс +/- погрешность, то можно считать, что это импульс сброса.
Возможное решение: ловим фронт импульса сброса (внешним прерыванием), определяем уровень на входе - если лог."1" настраиваем прерывание на спадающий фронт (если лог."0" - на нарастающий фронт) и до момента прерывания каждую милисекунду (например) проверяем состояние входа, одновременно считая кол-во проверок. Если уровень на входе не меняется в течение 350 +/- проверок, то можно считать, что этот импульс подходит по свойствам к импульсу сброса. далее ожидаем прерывание по спадающему фронту и после него аналогично считаем 50 миллисекунд. Если все прошло удачно - считай, что это был импульс сброса. Если в течение проверок изменилось состояние входа в момент, когда этого не ожидалось, то считаем, что это помеха и сбрасываем счетчики.

Это Вам требуется?
Ставим плюсы: )
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
DoctorVx
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт июл 19, 2013 15:43:02

Re: Помогите написать кусочек кода (C++)

Сообщение DoctorVx »

О! Да!! это то что надо я походу дела совсем напутал всё.. Язык СИ просто!!.. про спадающие и нарастающие фронты..... У меня ведь изначально контроллер слушает линию где +5 вольт.. может и 12 то есть там постоянно лог. '1' патом как я понял '0' ненадолго .. потом идёт последовательность.. потом с ново импульс сброса это как гласит описание работы панели вызова говорит об окончании счётных импульсов. дальше идут вызывные посылки но мне это уже не нужно.. мне нужно всего лишь по линии LV вызывной панели , расшифровать что введено на самой панели.. Спасибо что откликнулись =)
Реклама
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Помогите написать кусочек кода (C++)

Сообщение ibiza11 »

так проблема в том, что вы не можете составить алгоритм + не можете написать код под него? т.е. практически ничего не можете....
если это так, то зачем вы вообще взялись за эту работу?
Ставим плюсы: )
Реклама
Аватара пользователя
DoctorVx
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт июл 19, 2013 15:43:02

Re: Помогите написать кусочек кода (C++)

Сообщение DoctorVx »

Хорошо, давайте тогда перевернём ситуацию немного в другую сторону... Сколько будет стоить кусочек кода 10000% работающий и распознающий номер набранной квартиры с вызывной панели Eltis, Cyfral? на микроконтроллере ATMEGA8 с комментариями в строчках кода и с защитой порта микроконтроллера от криворукого подключения к вызывной панели защитой от умышленной порчи путём электрического разряда шокером и прочего что может вывести микроконтроллер из строя.. задача кусочка кода распознать набранный номер и поместить его в переменную, задача схемы интегрироваться в существующую систему не нарушая её работу (то есть интеграция в действующий полноценный домофон) По поводу вашего предположения "Вы ничего не можете" если бы все тут всё могли то форум себя бы исчерпал не успев образоваться.. Тут как мне казалось обсуждают вопросы по существу а не причины пробелов в знании о программировании и алгоритмизации. Если вас заинтересовало готов выслушать ваши ценовые предложения.. Спасибо.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Помогите написать кусочек кода (C++)

Сообщение pyzhman »

У самолета два магнеты, и то нет 100% гарантии.
Docendo discimus
Аватара пользователя
DoctorVx
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Пт июл 19, 2013 15:43:02

Re: Помогите написать кусочек кода (C++)

Сообщение DoctorVx »

ну так то да =)))) Но всё же хотя бы минимизировать влияние искривления рук на устройство можно попытаться =))))))))))
Ответить

Вернуться в «Разные вопросы по МК»