И сколько вариантов периферии вы реализовали? Отдельно светодиод. Что еще?
Я работаю с радиотехниками, там всяких синтезаторов частот, аттенюаторов, dds, коречипов вагон и тележка. И в разных изделиях их применяют в разных сочетаниях и количествах. И это не считая всяких чисто наших эмбеддерских микросхем памяти, разнообразных датчиков, индикаторов, клавиатур и т.д. Так что, дофига и больше, если быть совсем точным.
Зачем вы врете? Компилятор не имеет права разивать 32-битный регистр на байты, это вы делали вручную.
Если прогуливать уроки физики в школе, то окружающий вас мир наполнится магией и волшебством Так же и с программированием. Я могу "рассказать" компилятору как это сделать и он будет послушно это делать всегда и везде. И это никакое не волшебство, а банальное инстанцирование шаблона в зависимости от данных. Объяснение того что происходит под прошлым спойлером тут Спойлер
Хорошо, но какое это имеет отношение к разбиению линии данных по портам? Изменить способ обмена через define ничуть не сложнее.
Такое, что вам придётся вручную раскладывать доступ по портам, а я просто укажу на каких ногах какой сигнал подключен и дальше... Ну вы знаете, компилятор "всё сделает сам".
Красиво, это когда все ноги с одной линии контактов - без переходов уходят на чип с параллельным портом, одной красивой полосой проводников. Да, красиво, да работает - но в 100 раз медленнее чем могло-бы работать. А это означает что можно было взять чип в 100 раз слабее и дешевле. Мысль понятна?
Если можно написать простой, компактный и быстро работающий код, то большего ничего и не нужно. Дальше уже программист решает хочется ли ему скорости, тогда можно выбрать пины с одного порта и желательно не в разброс, а кому-то нравится красиво разведенные платы и он все тянет одной красивой полосой проводников. Скорость тоже не везде нужна, те же семисегментники можно проинитить так же просто:
мой скептицизм на счет С++ местным завсегдатаям известен, но против правды не попрешь: VladislavS действует правильно.
я сравниваю с Pascal, ООП в котором появилось раньше, чем С++, но и по сей день ООП в паскале остается вкладыванием коробочек в коробочки... а в данном случае налицо реальная польза. и тот факт, что С++ я понимаю, как таджик на стройке понимает русский, не умаляет ценность предложенного решения. и если бы я умел работать на плюсах, я бы обязательно скачал бы все его "библиотеки" и на их основе дальше делал бы свои поделки. но рожденный ползать летать не может, увы.
только вот спор об эффективности мне кажется великой глупостью: для чего вам создали МК с дикими мегагерцами? чтобы вы продолжали убивать время на оптимизацию каждого такта? для чего вам флеша напихивают в МК сверх меры? чтобы вы, как и 30 лет назад, экономили каждый её байт? в данном случае это не критика подхода VladislavS-а, у него эта "экономия" по сути является побочным эффектом проектирования, что минусом быть не может. а вот трата времени на достижение этой цели иными, менее "автоматическими" способами, это, имхо, глупость.
и пару слов о кодогенераторах. имхо, это тоже тупик для интеллекта. опять же на примере мною любимого паскаля, а именно Delphi, которая самая первая внедрила концептуальный подход программирования мышкой... и что в итоге? 99% кода, написанного "пользователями" дельфи является нечитаемой кашей из макарон. 98% "программистов" за 20 лет существования Delphi так и не приучили себя давать осмысленные имена сущностям, которые Delphi автоматически генерирует, до сих пор в их программах Button123 и Form321 вкупе с переменными i12 и m8...
увы, концепция кнопки "сделай за меня хорошо и правильно" в программировании не работает. но тем не менее, эта концепция продолжает жить и пестоваться различными "гуру"... и единственное, чем я могу это объяснить (не скатываясь на позиции теорий заговора) - это то самое изобилие мегагерцев и мегабайтов, которые попросту "гуру" не знают, куда деть. поэтому и появляются идеи типа "а давайте в следующей версии иконки сделаем с 64-битной глубиной цвета и 3D-анимацией"... ну или "а давайте сделаем кнопку, нажав на которую пользователь сразу получит работающее, как ему хочется, приложение". последняя идея очень перспективна в плане самообеспечения работой: ведь добавлять возможности в эту кнопку можно (и неизбежно придется) вечно...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Вот о чем я и говорю. VladislavS невтуда применяет свои силы. Да, у него было много свободного времени и он, пока бездельничал, написякал дофига букавок для конфига портов. Но профессиональный практикующий программист скажет, глядя на эти портянки: "И это всё, что ты сделал?" А ответить то будет нечем. Потому что любой "кубист" уделает VladislavS-а за минуту, а доводы, что инит портов на 100 тактов быстрее будут отклонены с насмешкой "Ты чо, на 480 МГц твои сто тактов растворятся как ложка соли в пяти литрах бульона". Конечно, такое поражение сложно принять, потому и доводы не будут услышаны. Это ж не практикующий программист, а программист-теоретик с массой свободного времени.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Ну так зачем делать конфигуратор, который будет генерить плохой код? Хороший конфигуратор выдаст код длиной в несколько строчек, в которых будет чисто конкретно только то, что нужно. Некоторые из вас никак не могут понять, что все эти длинные портянки, которые тут показывал VladislavS, прячутся в недра конфигуратора (они даже могут быть написаны на любом другом языке, хоть на Питоне), а на выходе в файле исходника получается короткая выжимка, всё чисто по месту. И верх красоты - конфиг нужных пинов в одном месте за раз.
Вопрос в том как сделать конфигуратор который выдаст код длиной в несколько строчек без использования продвинутых библиотек... Берем те же пины для семисегментника:
Код:
using segs = PinList<PC7, PA4, PA10, PB10, PB11, PD3, PB9, PA11>; using digits = PinList<PC0, PB8, PA3, PC6>;
Я их просто указал и все, внутри будет простая запись:
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Reflector, точно так же, как и у тебя, только без ненужного текста. Вы просто не понимаете смысла, не работали в больших проектах, и вам обидно за потраченное на ерунду время, потому и очень рьяно защищаете свой подход, своё потраченное впустую время. Нынче любой "кубист" сделает всё быстрее, а на ваши доводы о лишних тактах презрительно усмехнется и сплюнет, мол, чувак, поучи-ка жену щи варить. Такова жизнь, такова вот "селяви". Да, я тоже через это проходил, когда вручную писал USB, а в это время "кубисты" просто генерили проект и сдавали его раньше. Так же сейчас и вас уделают, когда потребуется.
Последний раз редактировалось НовыйДень Вс май 22, 2022 11:41:20, всего редактировалось 1 раз.
как аналоги этих двух строк будут выглядеть после отработки хорошего конфигуратора выдающего код в котором не будет ничего лишнего
назовите конфигуратором компилятор С++, и проблема решена интерфейс у конфигуратора - текстовый, символами ставится задача, и он генерирует максимально оптимальный код в соответствии с заданием.
все счастливы.
Добавлено after 2 minutes 34 seconds:
НовыйДень писал(а):
Нынче любой "кубист" сделает всё быстрее, а на ваши доводы о лишних тактах презрительно усмехнется и сплюнет
это верно. только что сделает кубист на небольшое изменение задачи типа "блин, на этот пин нельзя вешать SDA, там светодиод нужен, давай переставим их местами"? я так понимаю, Reflector в своем PinList вместо P1 поставит P22 и посмотрит на кубиста, как на говно...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
а вот трата времени на достижение этой цели иными, менее "автоматическими" способами, это, имхо, глупость
Сколько бы усилий на либу потрачено не было, по крайней мере она повсеместно используется и будет полезна в дальнейшем. Сравни это, например, со своим любимым впихиванием невпихиваемого в tiny13, что из этого большая глупость?
Так чё, нет в рукаве никакого продвинутого конфигуратора с кодогенератором эффективного кода? А есть только куб, код USB которого не помещается в младшие контроллеры F0? Расходимся, нас в очередной раз наипали диванные эксперты.
Обычным любителям что делать? Чужой конфигуратор(кроме куба) им не дадут, а чтобы написать свой нужно быть профессиональным разработчиком с кучей таких же коллег, так что ничего кроме написания своих либ и не остается.
Есть два пути. Один из которых - вначале написать огромные проприетарные портянки, а потом выдвигать их как "прорыв и новое слово отечественного кодопейсательства". Либо Не писать портянок, понимая, что конфиг портов - это не самая главная часть в предстоящей работе и занимает ноль целых хрен тысячных всего затраченного на написание кода времени. И все свои умения по продвинутому С++ гораздо важнее применить в более подходящем для этого месте.
Сравни это, например, со своим любимым впихиванием невпихиваемого в tiny13, что из этого большая глупость?
во-первых, признаюсь: моё предположение, что слежение за контекстом в крови программиста, оказалось ошибочным - ты явно не следишь за контекстом написанного мною. во-вторых, моё впихивание невпихуемого - это хобби, т.е. я это делаю из чисто спортивного интереса. у тебя задачи профессиональные - сколько раз мне нужно повторить, что сравнивать профессионала с любителем-хоббистом некорректно? warning тебе - сравнение операндов разных типов.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
во-вторых, моё впихивание невпихуемого - это хобби, т.е. я это делаю из чисто спортивного интереса. у тебя задачи профессиональные - сколько раз мне нужно повторить, что сравнивать профессионала с любителем-хоббистом некорректно?
Вроде писал и не раз, что программист, но не эмбеддер, следовательно все мои игры с мк - такое же хобби, мне за это никто не платит.
А есть только куб, код USB которого не помещается в младшие контроллеры F0?
В смысле не помещается? А как тогда калокуберы с STM32F0x2 работают? =D
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Ну не то чтобы совсем не помещается, это я образно написал, но что-то полезное рядом с ним уже будешь утаптывать.
Добавлено after 14 minutes 44 seconds: Вот, кстати, из полезного неногодрыжного. Таблица перекодировки. Где-то уже показывал, не помню где. Тут же налетели ястребы - да мы, да это всё внешними утилитами генерится и чуть ли не в виде бинарных файлов прилинковывается.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения