Если вы не полный дебил, то должны понимать, что в этой теме люди задают вопросы о МК АVR, котрый у них уже есть. А Вы, своими рекламными слоганами про STM способны только вызвать отторжение как к себе, так и ко всей продукции STMicro.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Увеличил частоту TWI до 40 кГц (до этого было 10), индикация дёргаться перестала. И тут прихожу через несколько часов - динамическая индикация встала, ярко горит последняя цифра Значит, контроллер завис в прерывании от RTC и не может из него выбраться (вложенные прерывания то я запретил). Значит, он ожидает от шины ответа, а она не отвечает. И вот как отследить, что шина TWI зависла и перезапустить её?
_________________ Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Таймаут добавить. Не просто висеть в цикле while (при ожидании флагов start/stop/ack), а декрементировать в нём переменную, при достижении нуля выходить из цикла с ошибкой.
Это уже противоречие. Вам же показали корпуса в разы меньше, чем SO-8 nри в разы большем количестве выводов. SO-8 это 6x5,4 мм и 8 ног - это монстр просто.
Именно. И для них надо развести дорожки на плате, которые займут места больше, чем сам корпус. Или Вы будете сейчас описывать преимущества многослойных плат?
Во-первых, кто заставляет все ноги разводить. А вот когда понадобится 7-ю ногу в so-8 нигде не возьмешь. Во-вторых, я чип 3х3 предлагал. Там и 2х2 есть, но это не под наше производство.
Таймаут добавить. Не просто висеть в цикле while (при ожидании флагов start/stop/ack), а декрементировать в нём переменную, при достижении нуля выходить из цикла с ошибкой.
Ок, сделал. Я так понимаю, что при возникновении ошибки нужно перезапустить модуль TWI? Для этого достаточно просто "передёрнуть" бит TWEN в регистре TWCR?
_________________ Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
конечно... если даже в простых схемах/программах костыли, то что же будет дальше?
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
конечно... если даже в простых схемах/программах костыли, то что же будет дальше?
Я не думаю, что это программная ошибка. Скорее всего, это прилетает помеха от импульсного преобразователя (у меня на этой плате стоит повышающий DC-DC) и от этого TWI глючит.
Корректную программу на ассемблере может вышибить в "глюк" только искровой разряд с зажигалки для газплиты в шину питания устройства. И то... не во всех случаях...
Ждать что-то в прерывании - вот самый большой глюк. Не надо ничего ждать в прерывании, это изначально порочная практика. Почему бы информацию не считывать в основном потоке, а в прерывании только выставить флаг что "пора читать".
Здравствуете. У кого установлена AVR Studio версии 4.19 и ниже, уделите минут пять, погоняйте код (приложеный) Таймер/счетчик-1 запрограммирован "Fast PWM" 8-бит. При отладке в AVR Studio (пробовал версии 4, 4.13, 4.18, 4.19) Т/С-1 ведет себя как "Phase correct PWM" (TCNT - счетный регистр должен при "Fast PWM" от "0" досчитать до "FF", выставить флаг переполнения, сброситься в "0" и опять до "FF"... , у меня при отладке "TCNT" от "0" считает до "FF", после от "FF" считает до "0", выставляет флаг переполнения и т.д. ...?). Если и у Вас так-же - наверно глюк студии, если нет - буду копать дальше - переустанавливать винду и т.д. ... В Протеусе все работает. В AVR Studio 5.1 - отладка проходит правильно, но не могу при отладке регистры периминовать, так, как они в программе обозваны директивой ".def" -? Может кто знает как при отладке можно регистры переименовывать в AVR Studio 5.1?
Ждать что-то в прерывании - вот самый большой глюк. Не надо ничего ждать в прерывании, это изначально порочная практика. Почему бы информацию не считывать в основном потоке, а в прерывании только выставить флаг что "пора читать".
Согласен, я практически всё делаю в прерываниях, а в основной программе лишь "заглушка" rjmp PC. Тогда такой вопрос. Мне нужно, чтобы некоторый кусок кода в основной программе выполнялся не в замкнутом цикле, а только после выхода из прерывания. Т.е. выполнили однократно этот кусок кода и ждём прерывания. Вышли из прерывания и снова однократно выполнили этот код. Т.е. можно ли как-то из прерывания выйти не туда, откуда оно было вызвано? Или у меня в принципе подход неверный?
_________________ Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Это в принципе подход неверный. Прерывание должно вернуть управление ровно туда откуда было вызвано и точка. Максимум что можно сделать - в прерывании выставить флаг в отдельной переменной а в основном потоке тупо пасти его и делать какое-то действие если он возникнет, не забыв сбросить.
Даже сразу наборчик макросов для этих целей припасён.
СпойлерДолжен быть объявлен регистр с "флагами" под символическим именем именем flags.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения