Счетчик импульсов не работает

AVR версия программы

Счетчик импульсов не работает

Сообщение akulaUS (akulaUS) » 02 июл 2018, 17:57

Ребят привет. Столкнулся с проблемой. Нужен счетчик импульсов.
ТЗ. при наличие разрешающего сигнала лог1 на ноге (С4) мк должен считать импульсы которые я подал на ногу (D2 -int0),после этого если сигнал разрешения стал лог-0, то мк заканчивает счет и дергает ногой, на которой висит светодиод, соответствующий количеству импульсов. При отсутствии разрешающего сигнала на С4, даже если что то и поступает на D2, считать не будет. Это все вроде работает, с этим разобрался. Но при симуляции в протеусе и в железе, при первом нажатии на кнопку разрешения (сигналы для упрощения посылаю кнопками, в железе через оптроны), на осциллографе проскакивает импульс на первой ноге ( она у меня с2). В ФлоуКоде упростил все до трех светодиодов, т.е считаем просто пока до трех. нужно решить проблему. если Вы что то об это знаете хотя бы намекните. Файлы прилагаю. чип Атмега8 частота 8МГц
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: akulaUS
Имя: akulaUS
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Счетчик импульсов не работает

Сообщение Прохожий (Прохожий) » 02 июл 2018, 21:30

Привет!
Дилей поставлен только для демонстрации основы алгоритма в протеусе, из за того, что кнопки в цикле и их опрос слишком быстрый (дилеем в своих проектах не пользуюсь от слова - совсем, так же как и фловкодными алгоритмами обработки кнопок). Если уберём дилей, то при нажатии двух кнопок сразу, пробегает большое количество циклов и счётчик их тоже посчитает. Для себя, к кнопкам добавляю триггеры. Для кнопки "вход" алгоритм такой: нажал - в один цикл проскочил импульс для счётчика, счётчик его посчитал и сбросил. Следующий импульс возможен если только мы отпустим кнопку и опять нажмём. А для "разрешение" сколько держишь нажатым, столько и не сбрасывается ( по идее это всё наверное есть в свойствах кнопок, не пользуюсь поэтому не скажу). В прерывания ничего выводить не стал, я не знаю что у тебя за проект - это уже сам. Входы притянуты к плюсу в самом МК. Если нужна остановка счёта после третьего, то в вычисление off_3 = 1 нужно приписать sh = 0, то есть обнулить переменную самого счётчика и дополнительно ввести алгоритм его останновки ( хотя и так он будет считать до 255 и на светодиодах это не отразится). ВНИМАНИЕ!!! В твоём потеусе не запомнил где какой выход, поэтому поставил произвольно. Все резисторы убрал на ненадобностью и так входы на плюсе :) Всё повторяется заново после резета :)

Forum sh.fcf_avr
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: Прохожий
Имя: Прохожий
Практикант
Практикант
Информация о пользователе

Re: Счетчик импульсов не работает

Сообщение щербатый (щербатый) » 03 июл 2018, 08:54

Прохожий писал(а):Для себя, к кнопкам добавляю триггеры. Для кнопки "вход" алгоритм такой: нажал - в один цикл проскочил импульс для счётчика, счётчик его посчитал и сбросил. Следующий импульс возможен если только мы отпустим кнопку и опять нажмём]

Привет Прохожий. Интересно твое решение, как ты реализовал этот момент. С триггером. Если не сложно, развей эту тему в этом направлении.
Ник: щербатый
Имя: щербатый
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение akulaUS (akulaUS) » 03 июл 2018, 18:39

Немного поясню. посчитать нужно очень точно. импульсов может быть от 1 до 16 штук (время между импульсами 5-10 ms). считать их надо именно когда есть разрешающий сигнал. разрешающий сигнал это означает что сейчас точно что то прилетит. например есть дверь... открыли дверь- выбежало 7 баранов (очень быстро, на мотоцикле) закрыли дверь- посчитали сколько выехало-выбежало и дернули веревку с табличкой на которой цифра)))))))))) я одного не пойму. ладно дребезг контактов. но почему импульс проскакивает? ведь импульса не было. если менять время задержки в моем примере, то и эта первая вспышка равна этой задержке.
Ник: akulaUS
Имя: akulaUS
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение WiseOwl (WiseOwl) » 04 июл 2018, 08:34

akulaUS писал(а): почему импульс проскакивает?
SCHET.rar
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: WiseOwl
Имя: WiseOwl
Новичок
Новичок
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение Yushik (Андрей) » 04 июл 2018, 08:46

Здравствуйте попробуйте так может отстанет этот паразитный импульс, таже программа с первого поста только упрощена и переделаны прерывания (обычно с ними так не работают). Так же не забывайте всегда подавать питание на AVCC и ставить кондёр 0.01 мкф. на AREF (у вас он чёто на земле сидел). В моей практике нередко тоже возникали всякие необъяснимые импульсы, обычно я создавал другие варианты этого-же алгоритма и как правило они исчезали. Два раза были приколы, если в начале цикла стоят чтение ячеек EEPROM то при подаче питания (проявлялось только в железе) в них записывались хаотичные данные, хотя записи там и в помине нету (запись стоит через несколько условий в глубинах цикла). Выкрутился так поставил паузу 0.5 с. перед основным циклом тогда дефект исчез.
Была свободная минута, я ещё раз проанализировал ваш алгоритм и выявил следующее. ФК помимо файла hex генерирует ещё файлы cof и elf (кстати ваш ФК его генерирует не корректным, должного назначения он производит, советую разобраться с ним) так вот если подставить в протеусе файл elf вместо hex тогда через паузу можно смотреть значения переменных в различных режимах работы МК, а также делать пошаговую симуляцию. Так вот при инициализации прерывания после условия, в ваш счётчик сразу же записывалось значение 0x01, отсюда и появлялся лишний импульс. Вывод неправильная работа с прерываниями.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Продвинутый
Продвинутый
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение akulaUS (akulaUS) » 04 июл 2018, 16:11

ребят спасибо. оба варианта работают, буду дальше шаманить)))) я еще только учусь , месяца три как. на ютюбе появились уроки по прерываниям, пошел смотреть
Ник: akulaUS
Имя: akulaUS
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение Прохожий (Прохожий) » 05 июл 2018, 07:51

akulaUS
Я пока от компьютера с фловкодом далеко, но если у тебя после сброса контроллера появляется "поразитный импульс в счётчике" то посмотри по фронту или по спаду у тебя прерывания, или если не в этом дело, то перед основным циклом счётчик нужно принудительно обнулить.
Щербатый, привет! Я пока без фловкода, триггеры потом выложу :)
Ник: Прохожий
Имя: Прохожий
Практикант
Практикант
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение akulaUS (akulaUS) » 05 июл 2018, 18:36

импульс ушел, все хорошо. WiseOwl в примере обнулил принудительно, а Yushik сделал чуть по другому, но оба варианта работают. я их поправил под себя. Там сейчас у меня другая фигня теперь)))
Ник: akulaUS
Имя: akulaUS
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Счетчик импульсов не работает

Сообщение akulaUS (akulaUS) » 15 июл 2018, 15:23

эта программа управляет соленоидами. Не могу сделать что бы перед полным втягивание штока, соленоид делал микро дребезг (тряс своим штоком туда сюда), но не до конца. Получается что это ШИМ. Вот что получилось. В файле запрограммирован на тряску , а потом на втягивание только первый выход. Можно в протеусе глянуть ( 1 импульс). При наличие разрешающего сигнала подаем импульсы, мк их считает. при пропадании импульса-дергается нога которая соответствует количеству импульсов. с первым импульсом все вроде бы как нормально, в железе и в протеусе. Но если размножить мою писанину по образу и подобию для других выходов, то в железе начинается каламбур. дергается все подряд, как захочет. В мк пока что 4 выхода. а должно быть 16. Вот чую можно сделать все компактно, только переменные втыкай и все.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: akulaUS
Имя: akulaUS
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

След.

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

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

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

cron