Прикрепите (PIN -штифт, поднимающийся) тригера, когда падает.... Визой-вицератор

Ореховый
Пт 20 января 2017 г. 15:59
Что ж, снова, еще раз, появилась еще одна новая проблема.
У меня есть PIN -20, работающий как на входе. У меня есть input_pullup On, Opto изолятор буферизирует вход из сигнала 12V
Изображение

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

У меня есть прерывание, установленное на триггер, когда штифт падает, когда Opto вытягивает штифт на заземление при подаче сигнала.

Почему это делает это? это оказалось полной болью. Я могу запрограммировать это, избегая использования прерывания и просто считывать значение вывода в функции, но есть и другие входы, которые ведут себя одинаково. Это ошибка в ядре Libmaple?

Я проверил с визуальным выводом и последовательным принтом. Значения контактов показывают правильные, 0 или 1... Так что это не Земля плавающая.

Любые идеи?

victor_pv
Пт 20 января 2017 г., 17:19
Не уверен, что может ли это иметь какое -либо отношение к проблеме, но мне было интересно, почему вы устанавливаете штифт как input_pullup, если вы используете подтягивающий резистор R15?
Не могли бы вы попробовать использовать только один или другой тоже посмотреть, есть ли разница?
Еще одна вещь, даже если штифт терпима 5 В, возможно, подтягивающий резистор до 5V вызывает проблемы с прерывами?

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

Ореховый
Пт 20 января 2017 г., 17:29
Я пытался с внутренним подтягиванием и выключенным... Такая же проблема.

Работа вокруг, которую я перешел, является одной строкой, если оператор, который устанавливает логическое значение True или предыдущее значение логического. Логин получает сброс до false в другой функции, когда эта функция завершила свое дело, это функция, которую Pin предназначен для запуска...

Это немного дерьмовый способ сделать это, но он останавливает странный эффект изменения состояния.

Пито
Пт 20 января 2017 г., 8:20 вечера
Даже когда вы используете оптокуплеров.. Вы говорите об электронике "мотоцикл"? Светодиоды Optocoupler, управляемые реле контактами или электроникой платы?

Ахулл
Пт 20 января 2017 г. 20:47
Я почти уверен, что это будет проблема отскока переключения, но единственный способ узнать, что наверняка будет наблюдать за сигналом на штифте GPIO с осциллографом. Я подозреваю, что это будет очень шумно как на событиях прессы, так и на выпуске. Немного фильтрации с низким проходом на конце выключателя, вероятно, будет очищать вещи.

victor_pv
Пт 20 января 2017 г., 21:37
Ахулл написал:Я почти уверен, что это будет проблема отскока переключения, но единственный способ узнать, что наверняка будет наблюдать за сигналом на штифте GPIO с помощью осциллограф. Я подозреваю, что это будет очень шумно как на событиях прессы, так и на выпуске. Немного фильтрации с низким проходом на конце выключателя, вероятно, будет очищать вещи.

Ореховый
Пт 20 января 2017 г. 22:49
ржу не могу : D Да мне нужен его Ocili

Может быть, это шум... Шум настолько быстрый, что входное состояние не распечатывается.... но достаточно быстро, чтобы прерывание запустило...

На данный момент я просто проверяю входные данные, применив 12 В на провода... Это еще не на мотоцикле.

Так что, если я должен изменить схему в будущей версии... Я добавляю небольшую крышку между булавкой и землей?

Ахулл
Пт 20 января 2017 г. 11:23
victor_pv написал:Ахулл написал:Я почти уверен, что это будет проблема отскока переключения, но единственный способ узнать, что наверняка будет наблюдать за сигналом на штифте GPIO с помощью осциллограф. Я подозреваю, что это будет очень шумно как на событиях прессы, так и на выпуске. Немного фильтрации с низким проходом на конце выключателя, вероятно, будет очищать вещи.

Ахулл
Пт 20 января 2017 г. 11:27
Черная писала:ржу не могу : D Да мне нужен его Ocili

Может быть, это шум... Шум настолько быстрый, что входное состояние не распечатывается.... но достаточно быстро, чтобы прерывание запустило...

На данный момент я просто проверяю входные данные, применив 12 В на провода... Это еще не на мотоцикле.

Так что, если я должен изменить схему в будущей версии... Я добавляю небольшую крышку между булавкой и землей?

Rogerclark
Сб 21 января 2017 г. 12:47
Harxwads Debouncing обсуждался в потоке Rotary Encoder,

Стоит прочитать эту тему, так как есть несколько простых схем, показывающих резисторы и конденсаторы

ZMEMW16
Сб 21 января 2017 г. 1:00
Ахулл написал: Но лень предлагает попробовать несколько из нежелательной коробки, чтобы увидеть, что работает лучше всего.

Беннебой
Сб 21 января 2017 г. 13:58
Возможно, добавление триггера Schmitt для очистки сигнала также может помочь.

Я строю что -то похожее на исправление сигнала Ropeo транспортного средства, я использовал этот ресурс в качестве начальной точки -> http: // участники.rennlist.com/tom86951/sp ... Page1.HTML

Различные входные обстоятельства, однако, переплыв на землю, но аналогичный принцип.

Мой проект до сих пор здесь -> https: // github.com/bennehboy/arduinospeedocorrection

Ореховый
Сб 21 января 2017 г. 14:33
Да, у меня есть шмит на моей линии сигнала RPM...