Вообще то я пользуюсь практикой SPL, не прибегая к ней самой. Там все выглядит именно так - проверка разрешения && проверка флага - сброс флага - обработчик.
jcxz, вы абсолютно правы. Правая часть && не будет выполнена, если левая false. Это значит чтения из ADC1->ISR не произойдёт. А такое чтение, для некоторых периферийных устройств может менять состояние флагов.
Правая часть && не будет выполнена, если левая false. Это значит чтения из ADC1->ISR не произойдёт. А такое чтение, для некоторых периферийных устройств может менять состояние флагов.
Я о чём и говорю. Поэтому думаю - или у ТС в свойствах проекта выставлено подавление варнингов, или он просто не обращает внимания на них при компиляции или регистры определены неверно (без volatile) или ...?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А разве на это выдаются предупреждение? Возможное невыполнение части условия - стандартное поведение, о котором просто надо помнить.
Лучше в начале ISR прочитать регистр флагов прерываний в локальную переменную и работать уже ней. Да и не нужно многократно читать эти флаги (если обрабатывается несколько разными ветками алгоритма).
Поэтому думаю - или у ТС в свойствах проекта выставлено подавление варнингов, или он просто не обращает внимания на них при компиляции или регистры определены неверно (без volatile) или ...?
Не, всё у него верно определено. Описания регистров из CMSIS взяты. Компиляторы действительно молчат.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения