Та не. Это уже все из области привычек и предпочтений. И на ЦМСИС можно написать все просто и понятно. Коменты ещё никто не отменял. А так можно ещё и спорить какая анотация православнее, обычная или венгерская.
Та не. Это уже все из области привычек и предпочтений. И на ЦМСИС можно написать все просто и понятно. Коменты ещё никто не отменял. А так можно ещё и спорить какая анотация православнее, обычная или венгерская.
Берем первую строку моего кода:
Код:
periphClockEnable(AHBPeriph::GpioA);
Совершенно ничего примечательного, но в тут же функцию я могу передать периферию висящую на другой шине:
Тут две ошибки: у этого мк нет USB и и в функцию работающую с APB2 я передал периферию с APB1. Компилируется замечательно, хотя внутри там есть пара assert_param и если они включены, то может быть я получу ошибку во время исполнения. Естественно эти assert_param в таком случае еще и сгенерят лишний код. Это реальные ошибки, на форумах постоянно появляются люди которые именно такие ошибки и допускают. Если вместо вызова функции работать с регистрами напрямую, то вероятность ошибиться еще больше, особенно если внутри скрыта работы с многими регистрами в которых придется выставить множество битов. Но я с тобой согласен, люди пишут менее понятный и более подверженный ошибкам код вследствии тех же привычек и предпочтений из-за которых они не могут отказаться от AVR
Пойдем дальше сравнивать. Одной из главных задач экономики, является задача экономии электроэнергии. Если взять одно мигающее светодиодом устройство, то вроде ничего страшного в потреблении как бы и нет. Но если таких устройств 100... 100500... 10000005000000... а в галактических масштабах? В периодах между зажиганием/гашением светодиода микроконтроллер может находится в режиме sleep, таким образом можно экономить электроэнергию.
Будем рассматривать самый лучший режим экономии, например для AVR Mega это спящий режим Power-down, ток потребления около 0.2uA если Watchdog Timer Disabled и около 6uA если Watchdog Timer Enabled. Но выйти из этого режима можно практически только по External Interrupts или Watchdog continue operating (if enabled). External Interrupts не понятно как можно использовать для пробуждения чтоб мигнуть, а Watchdog только фиксированные временные интервалы (Selectable Time-out period from 16ms to 8s), что не всегда приемлемо.
Теперь STM32F030, рядовой микроконтроллер, не для микропотребляющих применений - Supply current in Standby mode LSI ON and IWDG ON: 2uA. Просыпаться в режиме Standby он может от: WKUP pin rising edge, RTC alarm, external reset in NRST pin, IWDG reset. Independent watchdog регулируется несколько гибчее - есть Prescaler register 3 разряда и Reload register 12 разрядов. С помощью RTC alarm, работающего от LSI можно получить достаточно гибкий и широкий диапазон периода мигания светодиодом, т.е. практически годится для любых применений.
В периодах между зажиганием/гашением светодиода микроконтроллер может находится в режиме sleep, таким образом можно экономить электроэнергию.
Так в моем примере выше можно вместо бесконечного цикла усыплять мк и при этом он может мигать светодиодами хоть на всех пинах всех портов. ARV показывал свою бегущую строку, на STM32 можно сделать ее полностью аппаратной, главное сгенерить подходящую таблицу. Еще мк часто загоняют в сон когда наоборот читают данные с тех же внешних ADC, чтобы понизить уровень помех.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
В массиве фактически находятся 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, т.е. 200ms светодиод не горит, 200 горит, 400 не горит, 400 горит, 600 не горит, 600 горит и зацикливается.
На билдере для одного светодиода похожий алгоритм будет выглядеть так:
там вроде в Standby mode, чтоб войти, надо периферию всю повыключать
Да, ты прав, для Standby такое не прокатит.
Цитата:
На билдере для одного светодиода похожий алгоритм будет выглядеть так:
Реализовать то можно, но на проце и задействуя таймер, возможно единственный. А потом появляются темы как использовать на AVR в качестве обычного таймера WatchDog И я ведь правильно понял, что последняя версия Algorithm Builder вышла 7 лет назад?
Конечно, можно проспонсировать написание нового билдера, а потом купить пару тинек чуть дешевле STM32
Опять 25… Вы специально подкрадывались огородами, чтобы выдать данный тезис?! С чего Вы решили, что у меня нет СТМ? Хотите померяться письками? Это не ко мне, я давно не в этом возрасте… как пишет скорпиоша – я древний… так что Вам к детишкам типа scorpi_0n…
Опять 25… Вы специально подкрадывались огородами, чтобы выдать данный тезис?!
Данный тезис означает, что раз билдер уже 7 лет не обновляли, то из-за нескольких тинек никто его обновлять и не будет. Ну да, согласен, несколько погарячился, вероятность того что в обозримом будущем эти тиньки будут немного дешевле STM32 крайне мала
Ладно, глупости всё это… меня ни чуть не задевает упрёки в мой адрес по использованию древних продуктов… мне не важно общественное мнение, для меня на первом месте – нравится ли он мне (данный продукт).
И это должно было означать, что даже экономя потом на тиньках все равно не окупишь затраты на переписывание билдера.
Кстати, никого не удивляет почему автор сделал алгоритм билдер бесплатным и давно забросил? Вот его ответ:
Цитата:
Некоторое время продукт находился в некоторой неопределенности, поскольку дальнейшая поддержка AVR уже не имела смысла. В данное время активно разрабатывается подобная среда для ARM Cotrex-M3. Для начала это будет STM32.
Но эта среда похоже так и не появилась, глупо состязаться с современными компиляторами, наверняка автор это понял вскоре после того, как осознал бесперспективность AVR.
Жителям, перешедшим на новое решение, больше не придётся снимать показания вручную, кроме этого, за расходом электроэнергии, воды и газа можно будет следить через удобное приложение и выгружать статистику за определённый период.
Сомнительное преимущество. Сами чипы в этом, конечно же, не виноваты, но как только счетчики воды и газа поимеют электронные мозги, у водяных, газовщиков и разных управляющих компаний появится реальная возможность (сорри) на*бывать потребителей. У нас такое было в самом начале появления электронных счетчиков э/энергии : https://forum.sevastopol.info/viewtopic ... 1&t=215339
копипаста всего лишь, спорить с копипастой смысла нет. Меня более заинтересовало:
Цитата:
ресурс аккумулятора до 10 лет, а также коэффициент усиления 20 дБ по сравнению с традиционными GSM-сетями и поддержку более чем 100 тыс. соединений в рамках одной соты.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения