Мужики, такая проблема случилась. МК atmega328. На прерывания INT0 и INT1 с подтяжкой 10к резистором к +5 подключены герконы. Через uln2003 к портам B.2 и B.3 подключены 12 вольт реле для смены полярности на двигателе. . С порта B.1 запускаю ШИМ. Двигатель двигает каретку с магнитом от которого срабатывают герконы и останавливают двигатель. Вся проблема в том, что INT1 ловит какую-то странную наводку и уходит в прерывание даже не начав движение. INT0 отрабатывает по той же схеме без ошибок. Как избавиться от этой странной наводки? Пробовал разносить провода, отодвигать реле на расстояние, укорачивать провода и так далее. Пробовал сначала запускать ШИМ, потом включать реле, потом активировать прерывание. Пробовал всё это с интервалами по времени и в разном порядке. Осталось попробовать запустить от АКБ и выкинуть это всё в форточку. И почему INT0 не ловит никаких наводок когда всё в одинаковых условиях? Конденсатор в параллель герконы сможет помочь?
Комментарии: 25
Sergy
попробовать в прерывании делать debounce т.е. отсеивать дребезг контактов или использовать другие пины с PCINT всё равно проц работает быстро, +/- N мкс по идее погоды не сыграют для двигателя или поставить конденсатор там ещё паралельно геркону.
Anonim
Дебоунс указан сразу в настройках прерывания на 75 МС. Других портов свободных нет. А конденсатор какой примерно попробовать?
Sergy
10..500нФ если поменять на плате int0 int1 местами int0 себя начинает так вести?
Anonim
Ок, спасибо, завтра попробую. Тоже думал о конденсаторе. Но вот что странно, почему инт0 не отрабатывает? На плате не смогу, но программно и направления движения попробую поменять.
Sergy
мне кажеться то, что снаружи к int1 подключено что-то ловит по этому и предложил переключить на int0
Anonim
Как там вга?
Sergy
шах или шах и мат мне
Anonim
Не понял
Sergy
частично сделал, сейчас наброски на асм делал, знакогенератора машинных циклов похоже не хватит, что бы генерировать линию налету по знакогенератору во flash при том сделал набросок формирования первой линии это без вывода пикселей на экран представил как будут перемежаться куски формирования линии с кодом вывода на экран)) там просто взрыв мозга))
Anonim
Печально
Sergy
сейчас вот опять торкнуло
Anonim
Выдыхай
Sergy
делаю набросок, если несколько представлений знакогенератора хранить во флешке)))
Anonim
Зачем во флешке, есть же озу
Sergy
озу 2 кб
Anonim
Сожми его сильнее
Sergy
256 символов по 8 байт тактов не хватит на раскукоживание)
Anonim
Зашакаль его до безумия
Sergy
шрифт 5x7, куда более шакалить?))
Anonim
Отойди от экрана и скажи какого цвета буквы
Sergy
так озу не хватит))) монохромного)))
Sergy
да и особо не спасёт чтение из ОЗУ 2 такта чтение из флешки 3
Anonim
Ты чо, целый такт
Sergy
выиграл около 99 циклов есть какая-то вероятность уложиться в генерации следующей линии на лету теоретически есть