Ну хорошо а как в тиках Знак > или >= или == как будет правильно работать.Если в прерывании мы выставляем тики.В AVR запрещают прерывания потом разрешают при знаке > и >=.А как в stm32?
Две причины. Перекос фаз говорит что на этой фазе перегруз. А если на других 300.То плохой ноль на подстанции или на подходе по ЛЭП или ВЛ(воздушная линия).Одна фаза перегружена.Если бы был уверенный ноль.То такого перекоса не было.Ну 6в по мне это КЗ короткое замыкание.Почти 30 лет стажа.
Добавлено after 1 minute 23 seconds: Dimon456, Вы наверное работаете программистом?.
Ну хорошо а как в тиках Знак > или >= или == как будет правильно работать.Если в прерывании мы выставляем тики.В AVR запрещают прерывания потом разрешают при знаке > и >=.А как в stm32?
Какие тики выставляем? Зачем? В прерывании обычно делают минимальную обработку. А те операторы, что Вы перечислили, это: > - оператор сравнения: больше >= - оператор сравнения: больше или равно == - оператор сравнения: равно.
Прерывание - лишь выполнение кода в другом месте. Скажем, Вы читаете Есенина, вдруг рядом пролетает муха и её нужно отогнать. Затем Вы продолжаете чтение.
Операторы сравнения - это операторы сравнения. Прерывания запрещают для атомарности операций. Некоторые любят это делать без причины, поскольку чаще всего это излишне.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Ну в начальниках я никогда не ходил.А вот бетон на работе приходилось.Мисить.Дело не хитрое.Подобноле бывает.Но не 6 в и 300 в .А фА 150в ф В 200 в .И фС 300 в.6в в трёхфазном токе относительно 0.4кВ классифицируется как короткое оносительно нуля.
Добавлено after 3 minutes 12 seconds: Да и за это остался без работы.Не захотел бетон месить. Я нанимался электриком.Почему я так спросил.Потому что тут и неполное короткое.И непоолный обрыв.Это редко.В моей практики такого не было.
while (!(I2C1->SR1 & I2C_SR1_TXE)); А вот так правильно?
Код ниже- это компиляция из нескольких источников. Основной вдохновитель- Vladislav_S. В waitBit() нужно добавить счётчик циклов, тогда код, даже теоретически, никогда не зависнет. Спойлер
Есть несколько алгоритмов. По-моему, один из самых простых:
1) если поймали фронт сигнала нажатия кнопки, запустили таймер задержки для этой кнопки; 2) если таймер закончил счёт, то проверяем состояние кнопки. Если состояние кнопки всё равно нажатое, то действительно нажали кнопку.
Дребезг не только у кнопок, но и сигнальных контактов. На кнопках дребезг, обычно, 10-50мс, а вот на конечниках с оборудования может доходить до 500мс. Поэтому я и похихикал про аппаратное подавление дребезга конденсатором на 0.1мкФ.
Если обработка кнопки приводит к зависанию - то что-то не так в коде. Проверьте, что: 1. Выполнение кода точно доходит до обработчика нажатия; 2. Обработчик при нажатии кнопки выполняется ОДИН раз; 3. Обработчик после обработки ФАКТА нажатия кнопки, отдаёт управление коду за ним; 4. В конце концов, что после 1-2-3 что-то происходит и это можно увидеть. Да хотя бы диоды подключите на ножки, чтобы видеть события. Если не хочется диоды - используйте вывод в консоль (SW-TRACE) и выводите сообщения в эту самую консоль. Всё станет в разы понятнее.
Собственно, я всегда стараюсь придерживаться этих правил и код работает. А по логам значительно проще понять что где происходит (главное не повесить ядро самими логами и использовать их минимально необходимое количество).
Не та переменная била установленна.Тип не тот unsigned int.unsigned short int-нужно.В мкрочип студии таких багов небыло.Да и в Атолике не было.И ещё один факт кнопки не тактовые.Замыкаешь контакты идёт.А так Нужно повторно.Не достаёт площадка.Дорого но некачественно.Китай.
Для STM32 unsigned int = uint32_t, unsigned short int скорее всего окажется uint16_t. Вторая на 32 битном ядре может оказаться медленнее. > В мкрочип студии таких багов небыло. Не факт, что баг. Для разной архитектуры размер int'а может меняться. Это стандарт языка Си.
Для STM32 unsigned int = uint32_t, unsigned short int скорее всего окажется uint16_t. Вторая на 32 битном ядре может оказаться медленнее. > В мкрочип студии таких багов небыло. Не факт, что баг. Для разной архитектуры размер int'а может меняться. Это стандарт языка Си.
в этом то и прикол что unsigned int а я считаю декремент.И у меня в коде вроде переход нуля если я поменяю код напишу как ваш колега подсказал.У меня идут значения через ноль потом показывает минус и уменьшаются в минусах.Проверенно в железе.Я сижу и играюсь.И поменял я просто тип переменной.uint32_t -пишет ошибку кода.Так как число 2 байтовое то я его принимаю побайтно a=((unsigned int )a1<<8)|a2; и вывожу на экран потом разделяю a1=a/256; a2=a%256; и записую в EEPROM по байтно.Функции использовал.А они особенно по приёму не читают.Да я как Шариков .Взять и разделить.
tonyk, Зачем задерживать нажатие кнопки? Нажал и обработал. Какие проблемы? Если хочешь второй раз нажать, то это другая тема.
Приплыли. Я описал стандартный алгоритм подавления дребезга. Повторное нажатие и автоповтор- это другая тема.
Добавлено after 14 minutes 30 seconds:
ivan dimir писал(а):
Хорошо.Но как лучше уйти от дребезга контакта?В кнопке.
Использовать кнопки со встроенными SR-триггерами. Только вот зачем? Алгоритм, описанный мной выше, очень просто реализуется конечным автоматом, поэтому даже на стареньких 8051 работал быстро и требовал мало ресурсов.
Я плохо понял, чё там за проблема выше, но, по-моему, ты неправильно изменяешь значения переменных в прерываниях. И компилятор тут не причём. Смотри:
Программа работает под многозадачной FreeRTOS. Обрати внимание на включение тактирования порта. Мораль сей басни такова: любое изменение переменной должно делаться только в одном потоке, а если нужно делать его из нескольких потоков или прерываний, то операция изменения должна обрамляться критической секцией. Иначе словишь двойной инкремент или декремент.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения