Добрый день всем! Попалась засада..понять не могу где сидит. Есть проц, ПЫК16F714. На нем поднимаю прерывание INT на RB0.
В первом приближении хочу, чтобы оно словило сигнал CS (на этом странном устройстве это ВЛУ), повисело в while пока сигнал есть и вылетело с исчезновением ВЛУ на RB0. Парюсь... А когда пин RB0 сконфигурирован как INT с него вообще читается TTL-уровень???
void interrupt isr(void) { if(INTF) { INTF = 0; while(RB0) { RB1 ^= 1; //мигаю с большой скоростью } } }
Если убрать while и оставить только "мигание" то четко видно подмаргивание в момент, когда происходит обмен по шине. Т.е ловится. А с вайлом - мертво. Не ловится условие.
Плохо так в прерывании "зависать" в любом случае. Сделайте прерывание по обоим фронтам. Поставьте в прерывании некий флаг (переменную) при высоком уровне, снимайте флаг при низком. И мигайте в основном цикле уже при взведенном флаге. А иначе в чем смысл прерывания, если вы зависаете в нём так?
Ну если от балды, то с 16f84 в своё время была засада. Чтение с порта шло прямиком с TTL уровнями, а на прерывание с того же пина шло через триггер Шмитта. В результате, если амплитуда импульса не достигала порога триггера Шмитта, то лог.1 прекрасно читалась, но прерывание не происходило. Или это было на 16c84? уже не помню точно
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
ВЛУ 5V. Я так понял, должна быть некоторая задержка срабатывания прерывания. У меня обратная ситуация, есть прерывание но нет TTL. Я же не туплю, "rising edge" - означает по переходу "НЛУ->ВЛУ"??
Но в целом понятно. TTl считываться Должен. Малой кровью не обойдусь, макетировать придется для выяснения. Ну ладно.
К слову. Компилятор XC8, включил оптимизацию типа standart, с акцентом "оптимизация на время исполнения".(т.к слыхал, что без оптимизации вообще ХС8 в код мусора добавляет и ухудшает тайминги, не знаю на сколько так, но похоже)
Скорее всего ДА. Про платку с ПИКом известно только то, что она разработана для захвата данных с этой шины, но производитель отказался давать хексы, вот я и реверсю.
"есть прерывание но нет TTL". Ммм... код я выложил весь. Разве из него может следовать что-то другое? Другой вопрос.. это может быть CS не на весь период сессии а только короткий синхроимпульс, и к моменту попадания в вайл его действительно уже нет.
Какие то у Вас убогие методы захвата сигнала... На этой же ноге сидит ECCP. Так и сделайте на нем захват - он для этого и создан. Сразу узнаете длительность импульса.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения