Подсчет длительности входного импульса РРМ-сигнала

PIC версия программы(разные темы)

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение mim (mim) » 21 окт 2013, 07:04

Как только добавишь ШИМ подсчет времени будет прыгать, прерывания будут мешать друг другу. Так что ищи золотую середину.
Нет ни какого смысла в такой технике вылизывать с такой тщательностью... Какова тепловая стабильность кварца? Какова стабильность измеряемой частоты? Какова стабильность измеряемого импульса? и.т.д. и т.п.

ЗЫ мне непонятны танцы с бубном? В чем необходимость постоянной работы таймера? Ты каждый раз его обнуляешь...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение Enigm (Enigm) » 21 окт 2013, 14:34

Ну тут больше наверное интерес был в том, что бы самому так сказать прочувствовать возможности и ограничения микроконтроллера, в данной поставленной задачи.
Спасибо вам огромное за помощь.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение mim (mim) » 21 окт 2013, 16:31

Ну, если так, то да... Там еще траблы есть, когда прерывание счетчика и задний фронт почти совпадают, но прерывание по таймеру приходит чуть раньше, тут будут возникать провалы в измерениях, в эти моменты невозможно точно определить конец импульса, поэтому для RC управления нужно выбирать интервалы устойчивого измерения (или менять МК - с захватом, или повышать частоту).
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение Enigm (Enigm) » 22 дек 2013, 03:57

Уважаемый MIM.
Хочу попросить вас глянуть мой проект измерения импульса через захват.
Вроде все работает как надо.
Так как примеров захвата на форуме не нашел (именно для пик) то делал по рекомендациям Микрочипа http://www.microchip.com.ru/Support/tipsCCP%201.html
А вопрос у меня такой.
Гляньте может чего ненужного написал или не так как надо, может что сократить можно ?
CCP-684.rar
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение mim (mim) » 22 дек 2013, 12:27

Все правильно. Только обнуление таймера можно не делать, свойства положительных чисел в двоичной арифметике все сделают сами. В качестве условия FRRONT = 1, можно использовать значение самого бита CCP1M0 регистра ccp1con;. Также менять можно только один бит,например, если установил ccp1con=0x05; в прерывании, то ccp1con&=~(1<<CCP1M0) и ccp1con|=(1<<CCP1M0); соответственно в ноль и в единицу.
ccp_684_mim.fcf


PS Еще нюанс "сложение" замени на "логическую операцию" FCV_IMP1=ccpr1l | ccpr1h<<8;. По поводу корректировки... в моделируемом сигнале измени фронты с 1u на 1n - посмотри что будет, подумай...

Также возможны несущественные варианты
CCP-684.rar
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение Enigm (Enigm) » 22 дек 2013, 18:36

Спасибо большое.
По поводу фронтов.
Как я понял.
Захват срабатывает где то около середины и если фронты сильно затянуты, то будет насчитывать больше тиков, чем на самой верхней площадке.
Еще раз спасибо за помощь.
Благодаря вам я начинаю потихоньку понимать язык С.
И пользовать его в понятном для меня виде фловкоде, а не в трудночитаемом для меня виде других сред.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение mim (mim) » 23 дек 2013, 07:10

Enigm писал(а):По поводу фронтов.

Однозначно, существует какой-то гистерезис и пороговые значения лог. уровней, насколько правильно и как он реализован в модели я затрудняюсь сказать.
Измеряя длительность в диапазоне микросекунд и имея фронты в 1 мкс мы и будем получать погрешности в таком же диапазоне 1 -2 мкс.
Но я хотел обратить внимание, что в отличии от замера длинны импульса таймером, природа этой погрешности другая.
Захват - это аппаратная работа МК. Как только выполнилось условие на входе порта (уровень), аппаратные средства МК перекидывают значение таймера в регистр захвата и таким образом запоминают его. В этом случае нет ни каких задержек, присущих чтению таймера по прерыванию, когда после изменения уровня проходит некоторое время до момента чтения регистра таймера (рассмотривалось неоднократно) и поэтому чтение таймера нужно делать как можно быстрее. Функция захватат дает возможность не думать о задержках при обработке значения захвата (разумеется, в пределах периода до следующего захвата). Поэтому коррекция не может быть расчитана так как это было ранее. В данном случае ты просто опирался на известное значение длинны импульса. Фактически считается что захват происходит мгновенно (могут присутствовать ошибки внутренней синхронизации МК, но чем выше частота МК тем они меньше).
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение carworker (carworker) » 04 апр 2020, 22:51

Enigm писал(а):Уважаемый MIM.
Хочу попросить вас глянуть мой проект измерения импульса через захват.

Здрасте господа ! А можно все то же самое только популярно. Извините что напрягаю но без пояснений ну ни как. Внятно понял 2 строчки, интуитивно больше. Прокоментируйте плиз. Для начала например каким боком тут порт А ? А то очень хочется и нужен ССР . Как бы ФК великая штука, позволяет в чужое добро свой камень забросить. Что я и сделал. Не знаю как в железе но Рротеус рулит. Что и прилагаю.
В итоге мне нужен девайс который крайнюю переменную погонит в СПАЙ и КАН и сервопривод на 1/2 мосте
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось carworker 05 апр 2020, 05:24, всего редактировалось 1 раз.
Ник: carworker
Имя: carworker
(Одесса)
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение Enigm (Enigm) » 05 апр 2020, 02:35

Порт А пин 5 это вам не нужно, по идее это для наблюдения, ну и порт А 5 пин повторит захватываемый сигнал естественно с задержками.
А так прочтите это http://www.microchip.com.ru/Support/tipsCCP%201.html тут вроде нормально все написано.
Если не поймете, попробую прокомментировать , но не быстро работы много.
Аватар пользователя
Ник: Enigm
Имя: Enigm
(Сочи)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Подсчет длительности входного импульса РРМ-сигнала

Сообщение carworker (carworker) » 05 апр 2020, 05:31

Enigm спасибо. Си точно не пойму. В гугл переводчике нет пока такого языка. Буду ждать коментов. Сылочку знаю.
Ник: carworker
Имя: carworker
(Одесса)
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в Flowcode PIC

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей