- Как в С разрулить конфликт имен enum ? В одном хидере объявлено 3m(332 знак., 28.11.2023 10:53, MCU, полностью)
- Причем, похоже, не существует языков, которые бы сами разруливали
вывод типа от L-value. Только префиксы или явное указание области
видимости. - Cкpипaч(28.11.2023 16:34)
- Вот не верите, что С - прошлое. enum class в плюсах для этого есть. - VladislavS.(28.11.2023 15:52)
- Кстати, про кривые названия. мне пришлось использовать "грязный
хак": Eddy_Em(342 знак., 28.11.2023 13:52, ссылка)
- костылей то накидали ниже, а вот по уму надо вздрючить писателя
библиотеки, пусть к енамам добавит префиксы от названия модуля. - abivan(28.11.2023 12:17)
- Если это 2 разные библиотеки, менять в которых ничего нельзя, то
надо решать проблему именно в своих исходниках, где происходит
конфликт имен при включении обоих хидеров в компиляцию: il-2(419 знак., 28.11.2023 12:10)
- Костыль =AlexD=(235 знак., 28.11.2023 12:02)
- Технически, можно вообще не инклудить один из них. Вместо него
подставлять самописный, с немного иным описанием вариантов enum. Cкpипaч(109 знак., 28.11.2023 11:37)
- Замени тайпдеф на дефайн. Пусть бы себе переопределяется... если
конечно нигде не используется как тип ErrorStatus и HashReturn... POV(170 знак., 28.11.2023 11:19 - 11:25, картинка)
- Еще веселей, если бы в одном SUCCESS был бы нулем, а в другом -
единицей! Eddy_Em(154 знак., 28.11.2023 11:01)
- я в перечислении добавляю префикс по сокращению от имени типа Nikolay801_(423 знак., 28.11.2023 11:01)
- Заинклудить в C++ обернув пространством имён. - =AlexD=(28.11.2023 10:54)
- Отцы, а что означает запись float value = 1 << -3; Это
сколько в граммах?))) С гитхаба, есличе, проэкт на ардуине. - Hoвичeк1997(20.11.2023 14:54, , MCU, полностью)
- Добрый день,нужна программа fet pro430 ,для прошивки msp430, вернее
интересует больше серийный номер.поделитесь полной версией. - Maksim78(27.11.2023 13:08, MCU)
- Синхронизация времени МК. Eddy_Em(1704 знак., 13.11.2023 21:47, MCU, полностью)
- Не все понял, но как раз сейчас занимаюсь чем-то подобным. В
агрегате объединены шиной CAN ~надцать рядовых модулей и один
главный, периодически (раз в сколько-то секунд) рассылающий
высокоприоритетное широковещательное сообщение с содержимым своего
32-битного счетчика, каждый тик к-рого равен 10мс. Argon(212 знак., 16.11.2023 20:45)
- В CANopen эту задачу решают привязываясь программным ФАПЧ к
периодическим сообщениям SYNC. - ЫЫyкпy(16.11.2023 08:27)
- Задачу синхронного запуска измерения раньше реализовывали
собственно передачей широковещательной команды (в CAN вроде как
сообщения). После чего следовало асинхронное выгребание результатов
измерения. Нахрена эта ваша синхронизация - ХЗ - Vit(16.11.2023 07:19)
- поскольку задача ета нужна для точной синхронизации енкодеров (если
правильно понял) то почему бы не синхронизировать тактовую частоту
всех МК? один генератор, и несколько lvds драйверов на витую пару.
длину всех кабелей можно сделать равной. - Alex68(14.11.2023 18:37)
- "Проблема 2000-го года была вызвана, в том числе, использованием
старых программ, что не предполагалось во время их разработки."
Общий объём мировых инвестиций, потраченный на подготовку к 2000
году, составил 300 млрд долларов. - Codavr(14.11.2023 09:01)
- 1. С необходимой погрешностью времени определись, ms это одно, μs
другое, ns третье 2. Как работает NTP изучил? Потому что тут свой
колхоз, но не NTP который ты собирался сделать. 3. Периодическая
широковещательная рассылка пакета времени это не NTP и решает
многие задачи. 4. Советую к ознакомлению IEEE 1588 и его реализацию
в STM32H7 Ethernet MAC. Например RM0433 Rev 8, пункт 58.5.4, стр
2807. - RxTx(14.11.2023 09:00)
- Странный вопрос. в нем нет: 1. точности по синхронизации 2. частоты
шины 3. наличие маршрутизаторов в шине - Nikolaev_Aleksey(14.11.2023 08:46)
- +1 - LightElf(17.11.2023 18:21)
- У вас будут использоваться шлюзы/преобразователи для CAN и ваши
железки окажутся на разных участках? Или все железки будут на одной
ветке, т.е. получать все пакеты одновременно? Еще не понятно, надо
что бы время в железках синхронизировалось между собой или с
общемировым? А еще не понятно зачем подстраивать частоту, если
можно пересчитывать время, с учетом индивидуальных коэффициентов - AlexBi(14.11.2023 08:05)
- Главный шлёт своё время в широковещательном пакете(у CAN есть
такой?), если разница больше предельно допустимой, то ведомые
принудительно меняют своё время. Если меньше - пытается
подстроиться, опираясь на предыдущую разницу и текущую, что-то
вроде PD-регулятора. Для оценки коэффициентов пришлось модель
рисовать, но получилось в итоге. По формату: советую не счётчик, а
микро- или наносекунды в дробной части, чтобы что-то понятное было
переносимей между проектами. Ну или Dingo(203 знак., 14.11.2023 07:41)
- Микросекунды не получится, тут и с целыми-то секундами проблема:
частота ведь всего 48МГц! Поэтому и планирую слать в пакете счетчик
секунд и значение CNT, а ПК, зная ARR, сам дробную часть посчитает.
МК это не умеет: не то, что флоатов, а даже деления нет! - Eddy_Em(14.11.2023 08:11)
- Как хотите. Но 1 мксек = 48 циклов CNT, => 500 нсек=24 =>
250 =24, 125 нсек=12 циклов. Дальше на 2 не делится. Даже если так-
какая там у вас требуемая точность? ARR не константа же (для
подстройки скорости времени), поэтому либо её пересылать, чтобы
комп считал, либо на месте. Dingo(370 знак., 14.11.2023 09:25, ссылка)
- И ARR, и CNT, и PSC пересылаются же. - Eddy_Em(14.11.2023 09:30)
- Хорошо. Компе получил, что-то посчитал. А потом что? Назад каждому
отправляет все эти величины? Которые приходят в малопредсказуемый
момент времени. Или я "не туда" думаю? - Dingo(14.11.2023 09:48)
- Однако, NTP же работает подобным образом! - Eddy_Em(14.11.2023 10:02)
- Для NTP всегда "ARR" константа, а именно 2^32. Формат
uint32_t.uint32_t, то есть в дробной части, которая соответствует
числителю подразумевается знаменатель 2^32= 1sec. а у вас он
меняться будет. У каждого устройства. А нужен один для всех, единообразный. 48e+6 взять не можете,
потому что где-то окажется и больше этой величины из-за разброса
кварцев. Я предлагаю взять знаменатель дроби в 1e9, что согласуется
с одним из используемых форматов в time.h Dingo(1 знак., 14.11.2023 10:16)
- МК не может выполнять счетную работу: деления, да еще во флоатах,
займут очень много времени. Вот, у меня, например, на F042 идет
вычисление температур с датчиков TSYS01 (во флоатах, по полиному) -
занимает несколько миллисекунд! Eddy_Em(625 знак., 14.11.2023 10:41)
- А вообще там нужна скорость? Не думаю, что температура меняется
быстрее, чем считает МК через soft-float. Не хочу заморачиваться,
даже если разово не будет использоваться. - Dingo(15.11.2023 07:05)
- High Accuracy ±0.1°C @ Temp.: -5°C … +50°C это была причина выбора
гемора TSYS01 с полиномом? Жесть. Чем RTD + ADC16(20) не устроил с более
широким диапазоном и лучшей точностью? - enc(14.11.2023 13:34)
- Я же правильно понял, что сам сенсор способен дать разрешениетеоретически до 24 бит; однако, согласно даташиту, первой же операцией при
расчёте младшие 16 бит отбрасываем? О_о - Dingo(14.11.2023 12:27)
- Деление: не нужно через флоат, я вам уже написал выше, как обойтись
26*(сдвиг+сумма), могу подробней. Формат: я долго бодался, но потом
пришёл к тому, что должен быть единообразным. Даже в вашем случае
комп пересчитывает в человекопонятный со знаменателем 10е9(нсек)
или 10е6(мксек). Тактовая: вы получите значения в тиках кварца за
секунду, которые как правило не равны номинальной; точнее - имеют
допуск по отношению к ней. TSYS01: интересная зверушка. Могу
попробовать Dingo(83 знак., 14.11.2023 11:07)
- Всё он может. Деды летали на Луну с процом медленнее мегагерца. Вы
просто не умеете их готовить. - SciFi(14.11.2023 10:50)
- Могу только сказать, что в пакетах синхронизации не должно быть
никаких PSC/ARR, ибо протокол на то и протокол, что должен быть
отвязан от аппаратуры конкретного МК. il-2(106 знак., 14.11.2023 07:29)
- Про требуемую точность ни слова. Но откуда-то взялось "раз
20-50"... Откуда? Должно быть, это дух Коперника нашептал. - SciFi(13.11.2023 22:12)
- Ответ: Toчкa oпopы(91 знак., 13.11.2023 21:52)
- Кто-нибудь сталкивался с таким: есть на борту АЦП. Но этот АЦП не
имеет бита готовности, то есть непонятно когда в регистре данных
эти данные обновляются. Ввод осуществляется (как я понял со своим
кривым английским) только через FIFO. С FIFO тоже проблемы. Не могу
обнаружить признаки того, что это FIFO я прочитал полностью. Есть
какая-то байда с прерываниями, но их я еще не смотрел. - st256(15.11.2023 18:03, MCU, полностью)Cкpипaч
- Обычно, "байда с прерываниями" означает наличие выхода INT, который
дёргает вход МК, сигналя: "Отсчёт пришёл!", или: "Буфер заполнен"
(нужно выяснить, в какой момент подаётся сигнал и как он
настраивается, если настраивается). - Nikolay_Po(15.11.2023 22:36)
- А есть признак, что что-то новое появилось (пусть непонятно, всё ли
прочитано)? Если нет, то см. моё сообщение ниже. - Nikolay_Po(15.11.2023 22:26)
- Там ситуация такая. FIFO разбит, допустим, на 2 блока. Один блок
читаю, второй заполняю. Признак, что я полностью прочел блок
имеется. Но признака, что второй блок заполнен отсутствует. То есть
я могу продолжить считывать старые данные. Интересно то, что это не
дефект чипа. Это как-то работает, судя по описанию. Но вот как...
Технического писателя, я бы кастрировал, чтобы предотвратить
появления подобных талантов в будущем. - st256(15.11.2023 22:35)
- Разбивка на блоки произвольная или фиксированная? Как определяется
факт неполного прочтения блока? Признак полного прочтения один на
все блоки или индивидуальный для каждого блока? Как определить,
какой из блоков сейчас пишется, а какой - читать? - Nikolay_Po(15.11.2023 22:43)
- Да произвольная. FIFO там специфическое. Есть область памяти,
которая может быть отдана под FIFO. Есть регистр, который в этой
области показывает на начало, есть который показывает на конец. И
есть, блин, который показывает на размер FIFO. ЗАЧЕМ? Меня это
удручает, так как сие явное излишество. Далее, в области FIFO могу
выделить блок произвольной длины, где хранятся уже принятые данные.
Оставшаяся область, отведенная под FIFO, видимо, заполняется, пока
я обрабатываю блок с st256(263 знак., 15.11.2023 23:03)
- Сталкивался, не с АЦП, но суть та же - бита готовности нет,
состояние FIFO не отражает настоящего наличия данных (дефект чипа).
Попробуйте так: после завершения преобразования, каждый раз
вычитывать из буфера больше, чем могло быть преобразовано за
прошедшее время. Затем ожидайте дольше, чем длится одно
преобразование. Читайте пару отсчётов снова. Так гарантированно в
буфере будут один или два свежих отсчёта. Использовать первый из
них. Nikolay_Po(83 знак., 15.11.2023 22:24)
- В устройстве 4 канала, каждый на STM32F051, в каждом канале по
одному датчику температуры DS18B20 - контролируют температуру
силовых транзисторов, температура выводится на единый для всех
символьный LCD контроллером верхнего уровня(STM32F401) связанного с
каналами по интерфейсу SPI. Опрос датчиков температуры процессорами
каналов производится по известному методу с использованием УАРТ.
Все датчики успешно инициализируются и затем с них считывается
значение температуры Rainman62(543 знак., 11.11.2023 10:54 - 10:56, MCU, полностью)
- Попробовать другой софт. Tyмблep(394 знак., 13.11.2023 14:03)
- Узкоглазые наклепали такое количество фейковых 18b20 что их лучше
вовсе не применять. Банальный термистор будет работать безотказно! - 3m_гyляeт(11.11.2023 13:55, )
- Сделал так, что в каждом 10 цикле опроса(то есть один раз в 100
секунд ) происходит не опрос, а повторная инициализация. Результат
неожиданный: те 2 датчика, которые зависали, стали работать
нормально, а два ранее "здоровых" зависли .. - Rainman62(11.11.2023 11:52)
- 10 лет назад попались датчики, которые зависали. Купил новые в
чипедипе - прошло. - POV(11.11.2023 10:58)
- Подтяжка 4к7? bnb62(1 знак., 11.11.2023 10:55, картинка)
- Да - Rainman62(11.11.2023 10:56)
- Infineon 32-Bit Single-Chip Microcontroller. "Начпрод" требует
аргументированного обоснования: за и против. Я вообще ничего
внятного не обнаружил. Как-так то? Ни тебе архитектуры, ни линейки,
ни компилятора ни SDK - IDE... Дёрнутая IMotion - среда разработки
- очень тупо отсвечивает безнадёгой "нельзя без комьюнити". Кто
здесь? bnb62(1 знак., 08.11.2023 19:11, MCU, ссылка, полностью)
- TriCore это и есть фирменная архитектура. - Evgeny_CD(09.11.2023 18:09)
- Неуловимый Джо. Если их УЖЕ не лежит на складе на 10 лет вперёд, то
в топку. akz(1 знак., 08.11.2023 22:55, картинка)
- При переезде стартер кит 16 битного Infineon обнаружился, лет 20
валялся, только среда с ним была какая то слишком своеобразная. - Visitor(08.11.2023 19:35)
- Скажите ему, что правильные пацаны делают на авре :-) - SciFi(08.11.2023 19:29)
- Так и написать. В одну строчку: "Информации о данном продукте для
анализа не достаточно". - Cкpипaч(08.11.2023 19:29)
- Если ещё и A-step, вообще можно "попасть". Прикиньте срок овладения
неизвестной х-нёй, умножьте на 6 (мой опыт), укажите на
риски/сроки/ресурсы для замены камня уже после внедрения, если
зайдёте в тупик с поставками или апгрейдом для следующей версии
изделий... В общем, просто обозначьте риски. Если согласятся, то
что делать - внедряйте, делать нечего, но на ваших условиях. А так,
сказать ничего не могу, кроме рекомендации x6. - Nikolay_Po(08.11.2023 19:27)
- [решено] Не переключается усиление на ADS1255/56: в регистр
ADCON=02h пишу, читаю новое значение, но вычитанный сигнал остаётся
того же самого размаха, что и до переключения. Кто-нибудь работал с
ними, желательно ещё и с переключением/установкой PGA? Попробовал и
перекалибровку сделать после обновления - без изменений, хоть и
содержимое калиброванных величин меняется. Тренируюсь на подобных
"кошках" Dingo(220 знак., 01.11.2023 10:48 - 03.11.2023 06:46, MCU, ссылка, полностью)
- >в регистр ADCON=02h пишу Bhg2(210 знак., 01.11.2023 13:34)
- Правильно ли считаю? Максимально положительное значение RAW=361388;
опора 2,5В(0x7FffFF=8388607); осциллограф после трансформатора для
развязки пишет 468мВ пик-пик. Отсюда: К=361388 : 8388607 = 0,04308;
К*2,5В = 0,1077В. Дальше, (0,468В/2) : 0,1077 = 2.173 ("в разах").
Осциллограф не точнее 5%, опора на 431 у китайцев 2.492В по FLUKE
17B, округлим PGA до 2-х. Но он, зараза, не переключается! При том,
что даже если не трогаю регистры после сброса - то же самое. - Dingo(02.11.2023 07:50)
- Да, вычитывается обновлённое значение. PGA=1 - надо посчитать
вдумчиво, спасибо. Все, у меня 3 АЦП на SPI висит: сверху вниз
номера регистров, слева направо - АЦПшки. - Dingo(01.11.2023 16:35)
- "2; 20; 20; 20;" - это до записи нового PGA, или после ? - Bhg2(01.11.2023 18:17)
- Пробовал включить буфер (мало ли?) - без изменений. Сейчас к
Ардуине прилеплю, посмотрю, что будет с их библиотеками по максимальному/минимальному значению за секунду. Если будет
меняться - рыть код буду до победного. Удручает, что обмен идёт,
полезную информацию получаю, но переключить не могу. Dingo(1 знак., 02.11.2023 07:01, картинка)
- После. Но так и должно быть: в этом дампе сбрасывал усиление на 1,
т.е. PGA[0:2]=b000. Вот другой дамп, с ним такой же размах
напряжения с генератора "в попугаях" Dingo(200 знак., 02.11.2023 06:40)
- Эдакий...межплатформенный MMA в октагоне по правилам
..."плавучки">>> SERGHIO(8 знак., 01.11.2023 01:09, MCU, youtube, полностью)
- Nuvoton наконец доделал конфигурялку пинов для своих SiP. Десять
лет прошло всего лишь. LightElf(1 знак., 31.10.2023 15:13, MCU, ссылка)
- Здравствуйте. У меня есть плата с CP2102 (UART->USB).
Поступило задание: подключить COM порт к QT. Прочитал документацию
к библиотекам и разобрал несколько примеров, но так и не смог
подключить (т.е. выполняется условие else: порт не открыт). Можете,
пожалуйста, подсказать в чём проблема? 1Dmitry1234(4 знак., 28.10.2023 20:53, MCU, картинка, картинка, полностью)
- Здравствуйте. Помогите пожалуйста. Учусь программировать плату
NUCLEO-G474RE с контроллером STM32G474RET6U. Прогаю с помощью Keil,
вроде все паки нужные скачал, но всё равно чего-то не хватает, не
могу найти, что скачать, чтобы исправить. Вроде гуглил по
названиям, по тексту проблемы, но то, что нашёл не помогло.
Извините за большие картинки, не нашёл как уменьшить. Lem(3 знак., 29.10.2023 15:44, MCU, картинка, картинка)
- Коллеги, может кто имел дело с DS1961? По мануала все понятно. Не
понятно как в принципе можно ее использовать? Допустим для защиты
копирования идентификатора. - vesago(27.10.2023 16:32, MCU)
- Где у iar,овского компилятора под stm8 пути ранее открытых проектов
хранятся? Что-то поиском по содержимому в каталоге компилятора
ничего не находит. - jlm(19.10.2023 10:14, MCU, полностью)
- Лиха беда начало. Может будет линукс на esp32? Сколько оперативки
надо, чтобы ему нормально запуститься? С флешем проблем быть не
должно. яндексовский браузер если ютьюб открыть в нем, делает
синхронный перевод. vasily777(1 знак., 08.10.2023 20:54, MCU, ссылка, полностью)