Jump to content
    

Leaderboard

Popular Content

Showing content with the highest reputation since 08/23/2023 in all areas

  1. Раз "пошла такая пьянка", то ещё пять копеек. Классы сами по себе - не ООП. Классы - это объектный подход. Это инкапсуляция, абстракция, это возможность выражать объектами сущности реального мира. А ООП - это иерархии классов с наследованием, виртуальными функциями и т.п., т.е. повторное использование кода и динамический полиморфизм, достигаемый с помощью методов (виртуальных функций). С++ является надмножеством С с натяжкой. Это таки разные ЯП с разными стандартами, есть прямые несоместимости. С++ является в известном смысле потомком С, поэтому унаследовал основы синтаксиса и процедурную парадигму программирования. Но в целом это другой ЯП, который помимо процедурной парадигмы нативно поддерживает ещё две: объектную и объектно-ориентированную. Благодаря объектному подходу у программиста появляется возможность оперировать программными сущностями как аналогами объектов реального мира. Т.е. если программист хорошо знаком с предметной областью (а это необходимое условие для качественного результата), то он может строить программу как модель реального мира. Например, можно взять листок бумаги и нарисовать структурную схему того, что должна реализовать программа: при этом "квадратики" объектов схемы - это классы, а стрелочки, соединяющие "квадратики" - это открытые (публичные) функции-члены классов - интерфейс классов. Таким образом, фактически получается "скелет" программы, можно начинать писать код, наполняя в дальнейшем классы деталями реализации. Этот подход разительно отличается от принятого в С. С++ своими средствами (классы, инкапсуляция и абстракция) его провоцирует, а в С нужно предпринимать усилия (как приводилось выше: размещать код в структурах, явно передавать "this" и подобный "закат Солнца вручную", а главное - нет реального сокрытия деталей реализации и отделения интерфейсов от реализации). Переход от Сишного подхода к С++ному проходит не совсем просто (у всех по-разному), тут нужна некоторая ломка стереотипов при переходе от процедурного подхода к объектному. Но потом доминирующим становится объектный, как более высокоуровневый. Объектно-ориентированный подход - это уже средство следующего уровня, он позволяет строить более сложные программы на уровне архитектуры и системы. Главное, что он даёт - это возможность нативного расширения функциональности (наследование) и эффективное управление большим количеством "родственных" объектов (иерархии классов) через динамический полиморфизм. Все три подхода хороши в своих нишах. Процедурный - на уровне реализации кода функций. Объектный - на уровне "сущностей" программы. Объектно-ориентированный - на уровне системы. Выражаясь военным языком: процедурная парадигма - это тактический уровень, объектная - оперативный, объектно-ориентированная - стратегический (с известной натяжкой, конечно). Главная проблема тут - неправильное применение средств по отношению к контексту. Например, когда начинают пихать классы где надо и где не надо или (особенно это) лепить иерархии классов там, где они не нужны, из-за чего получается сложная, плохо управляемая и трудно понимаемая программа. Особенно этим страдают новички, которые познакомившись с тем или иным средством языка, пытаются его применить любой ценой. Опытный программист как раз в первую очередь отличается от неопытного тем, что хорошо знает, чувствует, где какое средство адекватно или нет, поэтому не совершает подобных ошибок, которые всегда стоят дорого - вплоть до необходимости переписывать программу заново.
    6 points
  2. О каком работадателе идёт речь? Bodr - это что, абвеатура предприятия а-ля рога и копыта? Или считается, что все права априори у работодателя? Вы обратились к сообществу разработчиков , которое имеет многолетнюю историю, устоявшиеся формальные и неформальные правила общения, выработанные и проверенные временем. Не ошибусь, если замечу, что в дополнительных нравоучениях, причем, достаточно примитивных и поверхностных, тут никто нужды не испытывает.
    3 points
  3. без понятия Если вы - руководитель, то задуматься Если нет- проигнорировать)
    2 points
  4. Чтобы транзистор работал, длина проводов, соединяющих его затвор и эмиттер с микросхемой драйвера затвора должна быть ноль, ну и этот драйвер затвора тоже должен соответствовать требованиям производителей таких транзисторов в их паспортах, т.е. выдающий 15 В 3 А, и разведён по схеме и правилам оттуда же. Длина проводов, соединяющих эмиттер, коллектор, конденсатор и обмотку разумеется тоже должна быть ноль, а первичную обмотку катушки шунтируют диодом. И такие схемы, т.е. с замыканием 400 В резистором 100 Ом, не делают, за ненадобностью, потому что заряжают конденсатор от обратноходового преобразователя — такой преобразователь работает от нуля, т.е. на замыкание в т.ч., его на том же микроконтроллере делают и на той же плате.
    2 points
  5. Для радарных применений магнетронов не столь важна форма импульса, сколько ее стабильность. Насчет формирующей линии верно указано. Кроме того, импульсные магнетроны имеют некоторую задержку выхода на полную мощность. Поэтому, при длительности импульса < 1 мкс используются импульсы с пьедесталом. Амплитуда пьедестала выбирается с таким расчетом, чтобы на ней магнетрон генерил единицы % от полной мощности в импульсе.
    2 points
  6. 2 points
  7. Залил на ftp Gowin EDA v1.9.9Beta-3 : ./upload/FPGA/_Gowin_/v1.9.9Beta-3 RN100-1.9.9 Beta-3E_Gowin Software Release Note.pdf
    2 points
  8. У меня 4 iar'овских компилятора на пк: 6.5, 7.8, 8.5, 9.3. Пользуюсь каждым время от времени. Они там ещё к unicode'у перешли не помню начиная с какой версии, поэтому старые скомпилированные либы будут всегда с предупреждением собираться в проекте по этому поводу. Ещё у меня есть icf-раскраска для Notepad++ 🙂 Так как меня заколебали родные icf и захотелось ваять собственные. Syntax Highlighting Scheme (IAR ICF).xml
    2 points
  9. const char hex[] = "0123456789ABCDEF"; str[0] = hex[(TWSR>>4) & 0x0F]; str[1] = hex[(TWSR ) & 0x0F];
    1 point
  10. В keil такого нет, но можно индивидуально для любого исполняемого файла по ALT+F7 в окне снять галку Include In Target Build и создать, как предложил коллега makc выше, отдельный исполняемый файл, куда заинклудить нужные исполняемые файлы. Все это добро сложить в отдельную группу чтобы было наглядно.
    1 point
  11. Не очень понятно в чём вопрос? Рисовать блок-схему узлов преобразования энергии и в каждом писать напряжение, ток и рассеиваемую мощность.
    1 point
  12. Между 40 и 4 тактами - разница в 10 раз. В 10 раз медленнее там, в 10 раз медленнее сям - вот уже и 400 МГц тактовой не хватает. Просто потому, что у программисту неудобно на стуле сидеть 🙂 современная тенденция такова, к сожалению. Переводятся виртуозные программисты, наступает эра неуклюжих программистов, которым всё неудобно.
    1 point
  13. Линукс вот на чистом Си написан. И развивается при этом.
    1 point
  14. Рассматриваем но пока ни один иностранный поставщик кроме Али не смог предоставить даже прайс, не говоря об онлайн закупках.
    1 point
  15. Использую исключительно флюс-гель Interflux IF 8300, не дорогой, упаковка 30сс хватает примерно на год, и под БГА и под КФН, и под паяльник в замен канифоли, легко смывается спиртом, под БГА просто испаряется если на станции, отмывки вообще не требует и практически не кипит если безсвинец. Так как зона моих интересов это ремонт СВЧ измерительных приборов могу заверить что не смытый флюс не дает каких либо заметных изменений на линейность, например при замене смесителя или диодов в нем анализатора включительно 30 гГц. Еще у них есть 7-мая серия, он немного более агрессивен, потемневшие БГАшки справляется тоже полезно бросить в холодильник, хранятся лет 5 без видимых изменений. Есть еще один положительный для меня эффект, если нанесенный флюс немного погреть феном он становится крайне липким, очень удобно накидать шары если нет трафарета, крайний раз по недосмотру сдул PE42525, намазал буквально промокнув пальцем погрел 180 феном пару сек разложил подходящие шары и так смонтировал в зад) Ну и самое главное за лет 5-7 использования не разу не купил подделку, видимо просто не подделывают. Как бы рекомендую.
    1 point
  16. как некоторый специалист в этой теме отвечу: ФЧХ (фазочастотную характеристику) на 10 МГц не смотрят у блоков питания. Максимум 1..3 МГц и то... за глаза. обратная связь не может работать так быстро (на десятках МГц). Этот трансформатор служит только как гальваноизолирующий так как у осциллографа выход генератора и щупы на одной земле. Он изолирует только землю генератора от того, чтобы не закоротить делитель обратной связи на землю. амплитуда сигнала в цепь обратной связи должна быть небольшой, иначе на диаграмме Боде будут всплески амплитуды еще как получится. Важно чтобы выходная частота генератора была более-менее точной. вы можете сами этот транс намотать витой парой и его измерить. есть хорошее видео:
    1 point
  17. Именно так. Пример: /** * \file * * \copybrief express::AGGREGATE_GENERIC::is_set_and_bag_instance_equal(const express::AGGREGATE_GENERIC&) const */ LOGICAL AGGREGATE_GENERIC::is_set_and_bag_instance_equal(const AGGREGATE_GENERIC& rhs) const { /** * Алгоритм: * * 1) Если какой-либо из операндов имеет неопределённое (\ref p11_s14_2 "?") значение, то результатом * сравнения является \ref p11_s14_7 "UNKNOWN" (см. \ref p11_s12_2 "п.12.2"). */ if (is_nil() || rhs.is_nil()) { return UNKNOWN; } ... /** * 2) Если размеры набора и пакета не совпадают, * то результатом сравнения является \ref p11_s14_3 "FALSE". */ if (length() != rhs.length()) { return FALSE; } ... /** * 3) По определению, экземпляр пакета 'a' равен экземпляру набора 'b' тогда и только тогда, * когда каждый элемент из набора 'b' присутствует в пакете 'a' только один раз, а пакет 'a' * не содержит элементов, которых нет в наборе 'b'. * * Для оптимизации будут определены вспомогательные массивы и реализован алгоритм, * описанный ниже. */ ... /** 3.1) Перебрать элементы набора левой стороны, при этом для каждого элемента: */ ... /** * * если элемент не равен себе (то есть результатом сравнения с собой является \ref p11_s14_7 "UNKNOWN"), * с другими элементами можно не сравнивать, результат будет такой же, поэтому * пометить его как "неизвестный", иначе пометить его как "посчитанный"; */ ... /** * 3.2) Перебрать элементы пакета с правой стороны, при этом для каждого элемента: */ ну и так далее.
    1 point
  18. https://www.doxygen.nl/manual/markdown.html
    1 point
  19. Почитал документацию, которой поделился dimka76 и попробовал снова нарисовать формы сигналов для засветки по одному сегменту из каждой сегментной линии. Сравнил их с ранее снятыми осциллограммами. Получилось очень похоже. Думаю теперь можно переходить к написанию программы...
    1 point
  20. Ой блин, сколько букав то по написали... Тоже самое делается и на процедурное Си, да и вообще на любом языке программирования.
    1 point
  21. U14737EE1V0AN00.PDF AN-658a.pdf AN-563c.pdf
    1 point
  22. не все инструкции/не оптимизирован, по крайней мере в 2018 так было (Open Source Firmware Conference Europe 2018) https://thesofproject.github.io/latest/_downloads/9002d9dff04782b3aa63a272a64435c6/SOF_OSFC.pdf у китайца есть конфиг для crosstool-ng и архив с оверлеем для т113 его надо сконвертировать для ct-ng https://wiki.linux-xtensa.org/index.php?title=Toolchain_Overlay_File собирается тулчейн в ct-ng - собственно моего там только потраченное время на поиск информации
    1 point
  23. О какой частоте речь? Бррр... Здесь написано нечто нечленораздельное... Изложите мысль яснее. Это что за механизм такой??? Каждого бита чего? Можно подробнее? Судя по всему (~80% вероятности), дело не в китайских руках, а в руках вашего программёра. PS: Был бы МК не китайский, поставил бы ~90% вероятности.
    1 point
  24. нет смысла для топистартера указывать эти страшилки. 1. Пока схема (неизвестно какая пока) и топология (ужас) не приведена хоть в какой либо цивильный вариант. Проверять нужно в указанных расширениях нет смысла. 2. Судя по вопросом тут работа практически в постоянном режиме. То есть главное не ошибиться в схеме. 3. Потребление тоже скорее всего никакое. То есть лишь бы питание было доставлено не зауженными проводниками минимальной ширины 4. Вряд ли тот нужно контролировать токи утечки и высокие напряжения. То есть лишь бы были выдержаны минимальные зазоры. 5. Если есть аналог -- ну будет шуметь на разряд-два -три хуже, чем по паспорту. 6 Если есть интерфейсы-- ну заработают не на максимальной частоте передачи или не на максимальную длину соединения. Но опять же-- скорее всего это не нужно. В общем как в в мультфильме--- "И так сойдет" Работать скорее всего будет хоть как ни будь. Если нет -- монтажным проводниками можно будет исправить в каком ни будь виде
    1 point
  25. https://www.intel.com/content/www/us/en/support/programmable/articles/000076814.html Does Quartus II software allow me to create an ERASE only Serial.._.pdf
    1 point
  26. Потому что строка должна заканчиваться \0
    1 point
  27. К чему этот поток сознания? Неясно... "Слышал звон да не знаю где он" - это про ваши представления об ЭМС. Советую ещё раз перечитать то, что я писал про помехи. И хотя-бы попытаться вдуматься. А не строчить очередную галиматью. Открываем мануал на SSD1306, читаем: Открываем мануал на SSD1322, читаем: Как видно автоинкремент имеется везде. И было бы странно, если бы его не было. И никакой привязки наличия инкремента к интерфейсу обмена - тоже, естественно, нет. По всем интерфейсам он имеется. Есть ощущение, что если бы вы не костылили код методом тыка (как описали выше), а открыли и прочитали мануал на свой контроллер дисплея (хотя бы то, что я нашёл за 5 минут и привёл выше) и писали бы код осмысленно, то и "внутренняя логика дисплея" работала бы исправно. Да все уже поняли всё про ваши методы. адьё
    1 point
  28. Цифровой изолятор - на выбор: SiLabs - Si8662EC-B-IS1 , или ChipAnalog - CA-IS3762HN , или 2Pai - Pai162E31 Питание раздельное, с двух сторон - от USB и от программируемой платы.
    1 point
  29. у меня сотни если не тысячи проектов. Я загнусь помнить, в каком проекте какой нужный мне компонет, а тем более искать его. Мне проще будет пересоздать его. А в библиотеке -- вот он под руками.
    1 point
  30. Можно без нажима, я определяю полярность ложа их на термостол выставленный на 80С и проверяю напряжение обычным мультиметром (нагревать до 80 градусов сами элементы не надо, напряжение на них появляется через 15 - 20 сек )
    1 point
  31. Без понятия. пару раз приходилось ремонтировать модуляторы но разработкой блоков занимался только для научной аппаратуры а там своя специфика. Вот как пример модулятор морского радара на 10 квт в импульсе- линия на ферритовом стержне с отводами, рядом конденсаторы линии и реле перключения длительности импульса.
    1 point
  32. Мне нужно интегральное решение на одном чипе. P.S. Однако же, я разогнал Si4463 на 20% (кварц 36 МГц вмето 30) и уменьшил уровень своих амбиций. Результат устраивает.
    1 point
  33. допустимо. Вы получите комплексную величину после о.п.ф , т.е. квадратурное значение отсчета каждого периода сигнала N-й компоненты спектра . Теорема гласит, что квадратурных отсчетов надо в 2 раза меньше чем обычных т.н. "вещественных" отсчетов. Для вещественных отсчетов спектр после ПФ получается состоящим из двух зеркальных абсолютно идентичных половин, принадлежащим соседним зонам Найквиста. Одна из половин таким образом получается избыточной. Отсюда можно проследить непротиворечивость Вашего представления о теореме Котельникова, заключающегося в смысле фразы "одной точкой невозможно описать период сигнала". Получите 2 вещественных отсчета на период, если конечно захотите, из N/2 компонент спектра зеркально достроите еще N/2 соседней зоны, и уже после о.б.п.ф от N полученных точек получите вещественные отсчеты исходного сигнала
    1 point
  34. Стараюсь их не использовать, ибо очень просто нарваться на брак или левые, одна точка контакта, нет фиксации... В основном ставим CWF(https://static.chipdip.ru/lib/413/DOC001413777.pdf) на слаботочку, логические сигналы и MF(molex в исполнении connfly\KLS) для 220 и др. силовухи.
    1 point
  35. В любом приличном сервисном центре по мобильникам.
    1 point
  36. Работает, определяет? Хорошо. Хотя конечно лучше декодировать сигнал в двоичную форму (0/1) на основе измеренных длительностей, а потом просто сравнивать получившийся двоичный код в виде некоего числа. Ну и в EEPROM лучше не писать каждый раз принятый сигнал. Достаточно одного раза, при "обучении" приемника. поставил + для нейтрализации. Если человек не умеет, это еще не повод его гнобить и минусовать. При нажатой кнопке эти действия будут повторяться мильён раз в секунду безостановочно, до тех пор, пока кнопка остается нажатой. Нужно внести дополнительную переменную-флаг ("триггер"), которая будет устанавливаться при первом заходе в это условие и сбрасываться только при отпускании кнопки. А это условие дополнить еще одной проверкой типа if(flag == 0) , то есть, чтобы вход в эту часть кода был только при значении флага = 0, то есть только один раз.
    1 point
  37. Какие иные? Если в домашних, то там достаточно стабильные условия. А если надо в каких-то иных - то необходимо купить разрядник и не морочит голову.
    1 point
  38. значит хорошо продается вопрос философский на самом деле , чем больше знаешь , тем больше начинаешь копаться в сути и на это тоже времени уходит не мало и требуется куда более детальнее ответы , нежели - "ну работает же".
    1 point
  39. сложного нет , но процессор - уходящая натура. регистры специальных функций 51 как раз подходят под определение проприетарной лабуды. если бы проблем не было , то вам бы не пришлось обращаться на форум. поколение таких динозавров, как я, ушло с 51 и не вернется на него(только если тряхнуть стариной за сольды), а молодым программистам идти и писать под 51 - только с мазохистскими наклонностями, нет таких, кто бы его пользовал. такова картина дня. и да, очень может быть, что ардуина неплохой вариант. Вот просто первая же ссылка на платку. Можно посмотреть на цену. знакомые ребята делали для заказчика вывеску какую- то. и туда вставили красивые часики. готовые. но, проблема была в том , что это были вторичные часики и им тут же пришлось искать решение простых первичных часов, чтобы запустить циферблат.
    1 point
  40. Если он выглядит как микрофон и на нём видна горящая лампочка при работе - да, если положили его включённым в карман - нет.
    1 point
  41. Не сильно они отличаются.. частоты небольшие. Я, в период освоения Альтиума, как-то пустил один бит DDR3 в диэлектрике без опоры, на длине порядка сантиметра. Работало немного выше 1 ГГц. Потом посмотрел на модели - S21 этого бита явно выпадал из общей картины. По мере набора опыта моделирования уже на глаз видно - что допустимо, а что делать не стоит..
    1 point
  42. Я использую Делфи по многим причинам, даже лицензия есть. Но заниматься правками времени нет совсем. В отличие от всяких новомодных свистелок, сгенерированные исполняемые файлы очень малы (один exe) и работают на всем от W98 до W11 без всякой мути вроде .нет, силверлайт и т.д. Даже лазарус хуже делает. Тот же функционал (просто форма с кнопками, простым графиком) дает раз в 5-10 больше объема. Зачем, не понятно.
    1 point
  43. Перенёс в /pub и добавил туда лекарство (/pub/FPGA/_PangoMicro_/Software/PDS_2022.2_sp3/license)
    1 point
  44. Чего там не достижимо? 256 к-тов половина из которых в празднике не участвует. Оставшиеся антисимметричны относительно середины. Итого - 64 вычитания. А если точнее - 32. (ssub). Ну и 64 масс. (тоже 32, 2 параллельных масс16х16). Знай и люби элементную базу. Итого (32+32)*8000/0.2~3мгц. 0.2 поправка на кэши и пр системную муть. Но это сильно пессимистически. Скорее всего будет меньше. На фазы сами умножайте. т petrov прав. У вас в руках серьезный девайс.
    1 point
  45. Таблицы 11 и 12. И просто почитайте весь ГОСТ. Не обращайте внимание на "Медицинские изделия" - нормы электрической безопасности для всех одинаковы
    1 point
×
×
  • Create New...