Перейти к содержанию
    

tonyk_av

Участник
  • Постов

    1 176
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент tonyk_av


  1. ...так сразу стало бы понятней. Зачем две термопары? Чем определяется та, по которой идёт формирование профиля?
  2. STM32CubeIDE

    Причём тут Куб? Вы работаете с GCC, и я пока не сталкивался с тем, что в нём что-то нельзя было сделать. Очень хорошо представляю. Давно хочу попробовать, но времени нет. Например, в ПЛК, когда на одной голове крутится программа пользователя, а на другая голова обслуживает коммуникационные интерфейсы и/или встроенную панель ЧМИ.
  3. О как. Неожиданно. Благодарю!
  4. Вероятно, сказывается специфика образования. Возможно, что ТС изначально учился программировать (без обид) на Васике, поэтому он не чувствует естественности ООП. Кроме того, не всем читали курс системного анализа с его декомпозицией цели и прочим. Возможно мне показалось, но многие отвечающие тут, так же как и я не задумывались о многих недостатках С++, пока не прочитали вопрос или какую-нибудь сентенцию об этом недостатке/недоработке. Видимо, тут как в сексе, когда видишь желанное тело, не замечая новой морщинки на нём.
  5. К моему удивлению, при беглом просмотре увидел снижение цен на ряд компонентов. Глубоко не рыл, но есть в доступе и не дорого. Я это знаю, печками управлял. Я тоже не понял, какая сеть. Сначала показалось, что речь о трёхфазной, потом всплыла фраза что это тоже вариант. Пока прикинул для однофазной.
  6. STM32CubeIDE

    Так тут совсем другое описывается. По ссылке описывается выделение буферов по нужным адресам, потому что сетевой контроллер работает с ними. Или я чё-то не так понял в хотелках вопрошающего?
  7. Измерение токов и напряжений в трёхфазной сети. Измерение температуры. Везде нужна гальваническая развязка. Плюс вы не учли ещё один температурный канал, который в случае сбоя МК хотя бы просто выключит печь. Обжиг керамики- зубы выпекаете? Намордничек с кнопочками-дисплейчиком точно не нужен? Хотя наличие 485-го намекает на удалённую настройку. По деталям в 5-7к при тиражности от 10 экземпляров можно попробовать уложиться.
  8. А вот и не без разницы! new-delete учитывают _тип_ объекта в отличие от банальных alloc-free. Более, того ещё и с учётом сигнатуры, что явно не доступно в С. EdgeAligned, мы с тобой одновременно об одном и том же, только чуть разными словами. 🙂
  9. Значит, не осознали его значимость и нужность по причине того, что пока не сформировалось объектное мышление. Простой пример: UART. Есть текстовый терминал, работающий по EIA-232, есть Модбас/RTU-мастер, работающий через EIA-485. Когда попробуете выделить у них общее, то с удивлением обнаружите, что у них на 95% общий код, и что создать для них общего предка становится естественным. Ну а разницу вынести в наследников. Так что тут я категорически не соглашусь, что наследование "в С++ прилеплено". Первое, что попалось на глаза: class FPU_device : protected IRQ { public: FPU_device( void ); ~FPU_device( void ); private: // Обработка исключений устройства с плавающнй точкой. virtual void IRQ_Handler( void ); }; То есть, следуя ОО-пардигме, любой объект, желающий обрабатывать прерывания, должен быть наследником класса IRQ и определить виртуальный метод IRQ_Handler(). class IRQ { .... protected: IRQ( void ); virtual ~IRQ( void ); //---------------------------------------------------------------------- // Обработчик прерывания. virtual void IRQ_Handler( void ) = 0; .... };
  10. Где настраивается цвет точек соединений цепей?
  11. А как же наследование? Как без него? А ты просто не используй эти переусложнённые шняги. Я при использовании С++ долго жил под угрозой переноса кода с ARM на МК с архитектурой х186, посему ориентировался на возможности Borland C++ 5.02. Это раз. А два проявилось при попытке использовать стандартную библиотеку. Кое-что можно использовать, но нужно хорошо понимать что и как в ней устроено, иначе добавление в программу двух строк приводит к увеличению потребляемого ОЗУ и ПЗУ на десятки килобайт. Вот-вот, только на неё не нужно ругаться. По-моему, она для того и сделана, чтобы каждый мог выбрать и использовать то, что нужно именно ему для его задач. И не нужно переживать, что остальное тебе не пригодилось.
  12. Так он ничего не измеряет и не регулирует, потому и стОит копейки. У димера тупо нет ни "мозгов", ни связных интерфейсов. Кроме того, выход его из строя не создаст ничего опасного, поэтому там нет (почти) защит. Уже три человека, имевших опыт разработки подобных устройств говорят, что вы не адекватно оцениваете стоимость конечного девайса. Убеждать vvzvlad в обратном и спорить я не буду. Вы спросили- вам вежливо ответили и поделились опытом, который состоит в примерной оценки стоимости конечного устройства. Я ведь не просто так сказал, что можно сделать вашу хотелку за 3к. Каюсь, не добавил, что производство нужно будет перенести в Китай и иметь тиражность хотя бы от 10к девайсов в год, плюс иметь техподдержку, умеющую забалтывать клиентов, и юристов, которые будут отгребать от ваше GOPы последствия работы ваших девайсов, и да, года через 2-3 вам нужно будет провести перерегистрацию конторы, потому что девайсы за 3к под вашей маркой перестанут покупать.
  13. С чего бы это? Хост начинает раз в 1мс опрашивает узел после последнего ответа, что нет данных. Пока узел отвечает данными, пауз на опросе не будет. Никакого жёсткого тайминга не требуется, пакеты принимаются целиком задачей с обычным приоритетом.
  14. STM32CubeIDE

    Очень просто. Дело в том, что у линковщика тоже есть переменные, которые он на этапе связывания может передать в программу пользователя. Оставил только то, что относится к сути вопроса. Скрипт линкёра, в котором создаётся переменная _estack. /** ****************************************************************************** * @file LinkerScript.ld .... /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ Далее в стартап-файле (у меня он свой) описываем эту переменную: //////////////////////////////////////////////////////////////////////////////// // // startup_stm32f446xx.cpp // //////////////////////////////////////////////////////////////////////////////// // GCC ARM compatible .... extern void *_sidata, *_sdata, *_edata; extern void *_sbss, *_ebss; extern void *_estack; // вот описание этой переменная из линковщика .... const intfunc __vector_table[] __attribute__ ( ( section (".isr_vector_FLASH" ), used ) ) = { (intfunc)&_estack , // значение этой переменной вычислит и подставит линковщик &Reset_Handler, &NMI_Handler, &HardFault_Handler, &MemManage_Handler, &BusFault_Handler, ... Значения переменных _Min_Heap_Size = 0x800; /* required amount of heap */ _Min_Stack_Size = 2K; /* required amount of stack */ используются точно также. Мне в стартапе они не нужны, поэтому прмер привёл для _estack.
  15. Если есть управление силовыми ключами, тиристорами или IGBT, то 20-30к выглядят вполне адекватно. Сейчас многие при оценке стоимости конечного изделия ориентируются на поделки из сарая дядюшки Ляо, поэтому искренне не понимают, что и сколько должно стоить. Вам тут про 20-30к пишут люди, делающие оборудование, которое ни кого не убило и не способно это сделать, и которое будет долго и безотказно работать. Впрочем, есть шанс найти афериста, который сделает вам "железку" и за 5к, я даже знаю как такую сделать и за 3к, но не буду, потому что не хочу брать на себя кровь невинных пользователей.
  16. Китайцы стали палить Н7? Да ну. В "Элитане" появилось много F4 по привычным ценам, возможно, Н7 подошли. Они как раз стояли в приоритете у СТМ на восстановление производства.
  17. Тут нужно брать интерфейс и протокол, подходящий под вашу задачу, а не пытаться натягивать сову на глобус. Да, можно, пытаться разбирать принятые данные на предмет их похожести на посылку. Делал такое, но не от хорошей жизни. Выше дали дельный совет про накопление данных с метками времени. Это общий подход. В моё случае можно было обойтись без меток времени, что упростило обработку. В любом случае, с UART и под Выньдой ни о какой минимизации времени реакции при обмене по UART речи не идёт. Очень часто встречаю ситуации, когда разработчик пытается уложиться в какие-то миллисекунды, а при более вдумчивом рассуждении оказывается, что эти миллисекунды никому нафиг не нужны и вполне всех устраивают даже секунды. Подумайте, действительно для вас критичны эти миллисекунды.
  18. Ага, помеха спомеховала и один из байтов в посылке потерялся. Поэтому никуда вы от таймаутов не уйдёте, потому что никогда не знаете, сколько отправилось байт в линию, и сколько дошло до вашего приёмника..
  19. Да. Так ведь я сам рисую нужную мне панель. А уж перегнать dxf в cdr, соблюдая их требования по обозначению вида мехобработки, не сложно, особенно в сравнении с разработкой внешнего вида самой панели.
  20. У специализированных контор с ценами на доработку или изготовление как раз всё понятно, в отличии от вас. Они берут за суммарную длину линии реза.
  21. Прикольно. То есть покупателю предлагается самому сверлить-пилить? Мне как-то привычней нарисовать панель и отдать её в специализированную фирму, где на 2Д-фрезере вырежут её и тампонной печатью напишут-нарисуют всё, что мной задумано, а мне останется только установить изготовленные панели в предназначенные для них места. Смысл работы с вашими корпусами вижу только из-за того, что Но тогда нужно понимать цены на корпусы и стоимость доработки.
  22. Интересно, как их использовали такие? Вот доработанный стандартный корпус. Тут пластик и металло-пластиковая панель. Такое много кто сделает. Как дорабатывать корпус из листового металла- не представляю. Производители берутся за такое только для партий. Видимо, ваше предложение для тех, кто делает более-менее крупные серии.
  23. Может, вместо части глухих стенок делать большие прямоугольные вырезы, чтобы можно было заказать панели из пластика или дюраля? Ессно, потребуются несколько отверстий по периметру. По-моему, тогда ваша задумка про универсальные корпуса обретёт смысл. А что можете предложить на DIN-рейку?
  24. Оно потому и разумное, что выбирается из соображений каких-либо физических ограничений, когда иное не прописано в ТЗ.
×
×
  • Создать...