All Activity
This stream auto-updates
- Past hour
-
STM32F405 на климатике
Obam replied to Vladimir_T's topic in STM
Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования Автор. Название. Издательство. Год издания. -
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
У меня - нет. -
Плавный переход C -> C++ под МК
dimka76 replied to Arlleex's topic in Программирование
Тут пример был про PLL. PLL инициализируется до всех прерываний. -
Новости из мира FPGA
RobFPGA replied to x736C's topic in Работаем с ПЛИС, области применения, выбор
Там пишут немного другое, скорее даже совсем другое ... -
Про порты в "плоском" дизайне с 2мя листами
Uladzimir replied to Mty's topic in Altium Designer, DXP, Protel
скорее всего вы вообще не проверяете все это(это для цифровой логики в основном). отключите проверку и забудьте про эти варнинги - Today
-
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
А зачем? К тому же иногда один и тот же код "вдруг" становится разделяемым с другим потоком или прерыванием. И все - операции RMW становятся не атомарными. Ловить такие грабли очень не приятно, а лечится лишь приучением делать именно одиночную запись там, где это можно сделать именно обычной записью. -
Плавный переход C -> C++ под МК
dimka76 replied to Arlleex's topic in Программирование
Почему ? -
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
Такое я стараюсь избегать, по возможности. А возможность - это когда статически (т.е. не в рантайме) можно знать содержимое регистров управления. Поэтому делаю набор "базовых" значений и при необходимости добавляю к ним флаги namespace SPI { enum { SPI_CR1 = 0x2 << SPI_CR1_BR_Pos | SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR }; inline void init() { CPU::CriticalSection(); SPI3->CR1 = SPI_CR1; SPI3->CR2 = SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN; SPI3->SR = 0x0; SPI3->CRCPR = 0x0; SPI3->I2SCFGR = 0x0; SPI3->I2SPR = 0x0; __DSB(); } inline void enable() { SPI3->CR1 = SPI_CR1 | SPI_CR1_SPE; } ... } -
Про порты в "плоском" дизайне с 2мя листами
Mty replied to Mty's topic in Altium Designer, DXP, Protel
Спасибо за ответ! Unspecified правда все равно выдает ошибку, [Warning] ... contains Input Pin and Unspecified Port objects А с отключением проверки хорошая идея. Подскажите - а в этом случае тоже только глобальное отключение проверки поможет, или можно как то индивидуально пометить цепь, что с ней все OK? [Warning] ... Net NetC45_2 has no driving source Вы рекомендуете забивать на такие warnings или как то метить их или отключать? -
Niyaz started following Моделирование и верификация ЦОС
-
Плавный переход C -> C++ под МК
dimka76 replied to Arlleex's topic in Программирование
Можно еще сократить до snd. И даже еще больше - до tx. Вы уж извините. Но что-то не сходится. То вы строительством занимаетесь, то у вас одинаковый стаж программирования с человеком, который всю жизнь программированием МК занимался. А я просто чтение-модификация-запись использую // switch system clock to HSI RCC->CFGR &= ~(0x03UL << RCC_CFGR_SW_Pos); -
AD8034 input ruins voltage divider
sergey23 replied to sergey23's topic in Вопросы аналоговой техники
Hello , I have two DC inputs, how do I calculate common voltage and differential voltage from these inputs? Thanks. -
усилить CML (дифф +-400мв) до 5Вольт SE, c 30ps rise/fall
_pv replied to _pv's topic in Вопросы аналоговой техники
а если вместо "распределённого", каскадировать с совсем небольшим усилением для получения большой полосы, есть же с fT под 50ГГц копеечные вч транзисторы ? тем более что коэффициент усиления не особо большой нужен. -
STM32F405 на климатике
EdgeAligned replied to Vladimir_T's topic in STM
Позволю себе процитировать одну известную и давнюю книгу от мэтров программирования: (извиняюсь, пдф-ка без распознавания текста, только в виде картинок) -
Плавный переход C -> C++ под МК
EdgeAligned replied to Arlleex's topic in Программирование
Понятно. Вы конечно мега-монстр программирования, но корона вам не жмет? 🙂 Считаете себя умнее основоположников программирования и авторов языков программиования 🙂 А всё потому, что вы мало читаете и слишком много о себе мните. Хотя мы с вами - ровня. Я пишу такой же говнокод, как и вы, точь-в-точь 🙂 У нас одинаковый опыт, одинаковый возраст и стаж. Просто я, в отличие от вас, не считаю себя умнее всех и не изобретаю велосипедов на треугольных колесах, а еще умею слышать оппонентов. Вы - ничего кроме себя не слышите. В этом и ваша слабость 🙂 В чем вы в совершенстве преуспели - так это в искусстве СПОРА. В полемике. Это у вас не отнять, вы мега-мастер споров. А в остальном - точно такой же как и я, не лучше, не хуже. Просто я читаю гораздо больше вас, а вы, кроме своих мух, ничего не знаете. Точка. Дальше я в этих спорах участвовать не собираюсь. Я не мастер полемики, мне это просто скучно. Это как с голубем в шахматы играть - он раскидает все фигуры и полетит хвастаться 🙂 -
Плавный переход C -> C++ под МК
jcxz replied to Arlleex's topic in Программирование
Ну да: "Миллион мух не могут заблуждаться. Если они туда летят, значит там действительно что-то вкусное." Подумал Вася, направляясь к объекту "М/Ж". Все калы и кубы пишутся для начинающих. А значит - пишутся так, чтобы быть доступными для понимания даже ребёнком. Точно так же, как детские игрушки делаются из безопасных материалов, которые можно хоть жевать без вреда, и без острых углов. Но это ведь не повод, чтобы вообще запретить всякие острые и тяжёлые инструменты. Взрослый сам может решить - какой инструмент ему лучше. На то он и взрослый. Так и эти ваши правила, которым вы слепо поклоняетесь, как религиозный фанатик, не вникая - они придуманы для начинающих. Чтобы помочь им сделать первые шаги. Когда ещё ноги не уверенно стоят на земле и голова не соображает куда идти. Чтобы не пропал этот карапуз, не заблудился, не попал в беду. А профессионал - он уже как взрослый - он сам волен решать - как ему действовать. Так как набрался жизненного опыта, он знает что и с чем едят. Он дееспособен. Он сам волен принимать решения и отвечать за свои поступки. И как для дела удобнее - так и следует оформлять исходники. А не как "гуру" из инетика посоветовал. Если своя голова на плечах есть, то никакие указания всяческих "гуру" не нужны. Тем более смешно слышать аргументы типа: "Все же так делают, значит это правильно". Подавляющее большинство этих всех - это чайники. И правила ваши пишутся - для этого большинства. А знающий человек - сам знает как ему поступать. Без советов сопливых... Я выше приводил конкретный пример. Который как раз иллюстрирует преимущество использования числовых констант. С вопросом: "Как то же самое написать без привязки к конкретным номерам битов?" Вы что-то сказали по нему (по делу)? Показали как это можно реализовать в соответствии с вашими проповедями? Нет, ничего не предложили. А треплетесь бесцельно уже сколько времени.... Скорее всего - типичный копи-паст fail. Но не факт конечно. -
STM32F405 на климатике
Arlleex replied to Vladimir_T's topic in STM
Покажите настройки BTR CAN и какова битовая скорость? -
STM32F405 на климатике
Vladimir_T replied to Vladimir_T's topic in STM
Благодарю всех за толковые советы. На плате плате установил мигающий светодиод, который управляется из основного программного цикла. Увидел, что МК работает на -50, а вот связь по CAN обрывается, МК - ведомый. Вот поэтому я ошибочно считал и всех вас переполошил, будто МК зависает. А перед тем, как связь терялась шли пакеты с ошибками, потому я считал, что данные портятся в ОЗУ. Кварц 16 МГц для задающего генератора уже менял, может он "плывет"?! Буду разбираться с системой тактирования CAN, чтобы понять почему набегает рассинхронизация приема. -
Плавный переход C -> C++ под МК
EdgeAligned replied to Arlleex's topic in Программирование
Но в этом имени есть главное его свойство - send и этого уже достаточно. Эти и подобные ему постулаты изложены в книгах по программированию. Надо их просто читать, а не изобретать собсвтенный велосипед на треугольных колесах. -
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
Осмысленность имен не имеет особого значения вне определенного контекста. Поэтому о лаконичности обычного send() в драйверах UART-а или send_uart1_slip_protocol() можно спорить до бесконечности. -
Плавный переход C -> C++ под МК
EdgeAligned replied to Arlleex's topic in Программирование
-
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
Опять же - пример из референса на STM32F4 Шо за зверь такой этот 29 бит? Разумеется, в готовых хидерах его нет. Ну раз надо его кепт, то я его кепт, просто этим самым макросом RCC->PLLCFGR = BIT_FLD(RCC_PLLCFGR_PLLM, 8) | BIT_FLD(RCC_PLLCFGR_PLLN, 160) | BIT_FLD(RCC_PLLCFGR_PLLP, 0x0) | BIT_FLD(RCC_PLLCFGR_PLLQ, 10) | RCC_PLLCFGR_PLLSRC_HSE | B29; -
Плавный переход C -> C++ под МК
EdgeAligned replied to Arlleex's topic in Программирование
Ну дак никто против этого ж и не стоит. Однако, если лампочки - то биты вполне можно назвать L0, L1... В общем, все-таки почитайте вышеприведенную книгу 🙂 Там конечно не обязательно со всем прям стопудово соглашаться, но базовые направления, основы, концепция - она таки да. -
Плавный переход C -> C++ под МК
Arlleex replied to Arlleex's topic in Программирование
Ну, иногда всякие B0, B10 использовать действительно удобно. Например, когда биты никакой смысловой нагрузки не несут - несет лишь числовая составляющая позиции. Например, в неком протоколе передается регистр. В описании 16-битного регистра написано - у тебя 16 лампочек с 0 по 15. Т.е. нет какой-то смысловой нагрузки в самих битах, у них нет как такового названия. Важно лишь, что каждому биту N соответствует лампочка N. Вот там уместно пользоваться всеми этими B0... -
Плавный переход C -> C++ под МК
EdgeAligned replied to Arlleex's topic in Программирование
Ладно, черт с ним. Тут дело не в частностях реализации, дело в общей концепции построения. Вот и пакет CubeHAL от ST придерживается такой же концепции. Эти HAL и BSP не с потолка ж были взяты. Да и поставляемые пакеты CMSIS тоже не просто так поставляются. Там много людей над этими пакетами работали, и не один год используются. Значит, это направление ВЕРНОЕ. Множество людей не могут заблуждаться же. Тем более, основоположники современного программирования такую концепцию и разрабатывали. Я читал довольно много книг от авторов, стоявших у истоков современного программирования. И все они придерживались одного пути. В частности, применительно к теме здешнего разговора последних страниц, они утверждали, что текст программы должен содержать осмысленные имена, отражающие суть описываемых действий и инструментов. То есть, SPI_CR1_SPE является абсолютно корректным именем с этой точки зрения. А вот B0 - как раз не является хорошим тоном в программировании. Не важно, на чем эти имена построены, на #define или на struct, но имя должно отражать суть, а не быть набором бессвязных букв. Советую почитать хотябы книгу Эндрю Ханта "Программист-прагматик". В ней рассмотрены общие принципы построения, обсуждаются способы, как избежать "выстрела себе в ногу". Изложение конечно несколько отвлеченное, но программирование - это ведь в том числе и философское занятие. -
STM32F405 на климатике
jcxz replied to Vladimir_T's topic in STM
Если в том холодильнике он найдёт пивас, то может долго там её искать.