- Кто в этих ваших Эзернетах понимает, объясните темному. Будет ли
нормально работать такая система? ИвaнII(597 знак., Вчера, 12:31,
, MCU, полностью)
- Есть коммутаторы store and forward емть cut OlegPowerC(409 знак., Вчера, 20:22)
- Вопрос не в быстродействии. На одном устройстве протестировал
задержка запрос-ответ получается 500-600мкс. Вопрос о совместной
работе нескольких устройств. Модбас мастер посылает
широковещательный UDP, слейвы отвечают по UDP на разные порты
мастера - IBAH(Сегодня, 09:58)
- Используйте не широковещательные а мультиадресные - multicast - OlegPowerC(Сегодня, 16:30)
- >> AlexBi & Nikolay_Po ; Вот как раз широковещательная
передача от мастера меня не беспокоит. Раньше-позже, главное чтобы
одновременно. А вот ответ слейвов, происходит одновременно, и все
пакеты должны пролезть в одну дырочку. - IBAH(Сегодня, 10:20)
- Разумеется, когда все слейвы разом начнут передачу, они создадут
коллизию на порту мастера, в его сторону. Но это не страшно. Если
коммутатор со встроенной памятью, то слейвы коллизии не заметят, их
кадры будут буферизированы коммутатором и отправлены мастеру в
случайном порядке. Если без, то слейвы не смогут передать кадр
сперва, будет коллизия. Отложат передачу на случайное время.
Попробуют снова. И уже кто-то, чисто случайно, займёт канал раньше
и успешно передаст. Nikolay_Po(876 знак., Сегодня, 10:45)
- Коммутатор построит ответы в очередь, так они все в одну дырочку
пролезут. Глупые хабы сейчас уже не встречаются, как мне кажется,
кругом сплошные умные коммутаторы/свичи. - AlexBi(Сегодня, 10:43)
- Как мне кажется, успех этой схемы будет зависеть от загруженности
сети. При отсутствии обмена информацией коммутатор отправит
Ethernet пакеты всем устройствам одновременно, с разницей в доли
мкс. Но если какое-то устройство в это время что-то шлет или
принимает, тогда пакет для него встанет в очередь и задержится на
время передачи других пакетов, на неопределенное время. AlexBi(48 знак., Сегодня, 10:11)
- Если удастся исключить другой, чужой трафик в сегменте Ethernet, то
реально. Широковещательный UDP пошлётся с broadcast MAC-адресом
назначения. И коммутатор Ethernet повторит его на все порты
одновременно. По идее, разницы в задержке между портами быть не
должно, но стоит перепроверить - возможно, в некоторых случаях,
когда включены фильтры, из-за последовательной обработки ЦП, пакеты
могут выйти к получаетелям с портов коммутатора с разным временем. Nikolay_Po(195 знак., Сегодня, 10:07)
- Это один коммутатор? Т.е. расстояние от мастера до любого из слейвов не
более 100м? Я бы сигналы типа "открытый коллектор" передавал. Все
же 1мс это довольно жестко. - Cкpипaч(Вчера, 15:12)
- По харду так и есть, ОК или сток, пулл апы на прием и на передачу
49.9 Ом к 3.3 В или 2.5 В. Потребление порядка 100 мА минимум.
Канальное кодирование манчестер для восстановления синхронизации. В
продвинутых чипах еще кабельный эквалайзер адаптивный есть, они до
150 м могут. - Visitor(Вчера, 16:06)
- 1мс нормально на сотке, но потери пакетов будут неизбежно. - LightElf(Вчера, 15:50)
- Перенесено сюда: Nikolay_Po(1 знак., Сегодня, 10:52, ссылка)
- А причина потери пакетов? - IBAH(Сегодня, 10:08)
- Есть фоновый трафик, есть обновление записей в таблице MAC-адресов
свича, есть всякие штуки а-ля Storm Protection, Advanced Link Power
Management, etc. Все вкупе почти гарантирует, что раз в
час/день/неделю пакет будет теряться. Немного, допустим 0.01%
пакетов, но будет и к этому надо быть готовым. Если сеть "только
для себя" (гарантированно нет никакого постороннего трафика) и
тщательно раскурить даташит свича на предмет его настроек - наверно
можно порешать. Но проще LightElf(25 знак., Сегодня, 12:20)
- Но это как на шину RS-485 пустить посторонние устройства с
постороними запросами, а потом удивляться, что это у меня кадры
Modbus RTU иногда теряются. Nikolay_Po(435 знак., Сегодня, 10:52)
- Запустил пинг на свой маршрутизатор (вааще не нагруженный): 5-10ms.
Ок, допустим на UDP будет в десять раз лучше и чо? - Cкpипaч(Вчера, 15:56)
- IEEE 1588? Или - по ссылке? Toчкa oпopы(1 знак., Вчера, 15:11, ссылка)
- Зависит от уровня ответственности. Я использую похожую схему, но не
механизмы включаю, а показания с датчиков собираю. Причём
эпизодический сбой обмена для работы не критичен - мастер просто
отбрасывает этот цикл измерений. LightElf(195 знак., Вчера, 15:00)
- я не особый знаток, но ответ - однозначно нет. LordN(282 знак., Вчера, 12:39)
- Это у меня запасной вариант, вводить задержку между получением
запроса мастера и ответом с слейва, пропорциональную номеру
устройства - IBAH(Сегодня, 10:06)
- Ethernet не гарантирует доставку. - LightElf(Вчера, 14:48)
- Уже и не помню, есть разница в пакетах TCP/UDP. - Visitor(Вчера, 15:15)
- TCP/UDP ходят поверх IP, который ходит поверх Ethernet, это разные
уровни. - LightElf(Вчера, 15:53)
- UDP не гарантирует доставку. Пакет уходит "в никуда" без обратной
связи. - bodis(Вчера, 15:29)
- раз уж такой интересный разговор. Мне как раз предстоит общаться по
TCP-соединению. Что получу в обратной связи, если не доставлено?
Так-то вижу что просто прозрачный канал, как в диалап-модеме. - Лaгyнoв(Вчера, 15:53)
- TCP подтверждает прием определенного количества данных (окна)
флагом ACK и в этом же сегменте будет acknowlegment number, он
будет указывать на номер sequence который следующим ожидает
приемник. OlegPowerC(206 знак., Вчера, 23:03)
- Мы сейчас Profinet RT/IRT изобретем. Если коротко, то протокол
работает на 2-м уровне модели OSI, прям в "голом" фрейме Ethernet и
на специальных ASIC чипах. bodis(2 знак., Вчера, 22:33, картинка, картинка)
- А ты различай TCP и UDP соединения, для начала :) На удалёнке
получишь необъяснимые паузы до пары секунд. Иногда. В основном,
норм. Cкpипaч(133 знак., Вчера, 15:59)
- Обрыв соединения по таймауту. - LightElf(Вчера, 15:56)
- «Байкал Электроникс» начала выпуск микроконтроллеров на
архитектуре RISC-V. По второй ссылке описание используемых в МК Байкала ядер. reZident(658 знак., 28.07.2025 19:44, MCU, ссылка, ссылка, полностью)
- Вопрос - это только фантазии или его можно уже сейчас приобрести? - Make_Pic(07.08.2025 07:11)
- Что-то оперативы кот наплакал. Хотя бы 256 КБ было бы - Звepoящep(03.08.2025 09:14)
даташит нашелся подобие даташита AlexG(30 знак., 02.08.2025 12:51, ссылка)
- Я чето не вкурил, а флешка набортная есть? там просто идёт речь про
"внешнюю флеш и 32 кб ОЗУ". По ссылкам ничего про объем встроенной
флешки нет, хотя по идее она там должна быть. - Ralex(29.07.2025 11:07)
- О, киллер фича: "Встроенный MicroPython". Расходимся, нас школьники
и пионЭры сейчас затопчут. Эмбеддинг... все :( - 3m(29.07.2025 10:38)
- Без АЦП нещитово. - Kpoк(29.07.2025 09:18)
- 3 12-разрядных АЦП: 8 мультиплексируемых каналов с поддержкой
дифференциальных входов; Частота дискретизации - 1 МSps; Встроенный
датчик температуры - petrd(29.07.2025 10:35)
- АЦП: SciFi(2 знак., 29.07.2025 10:23, ссылка, картинка)
- Выглядит интересно, жаль только Ethernet нету. - =AlexD=(29.07.2025 10:27)
Даше Кроку АЦП нашли, может и инет где-то есть. PS а может и есть
"Поддержка периферийных модулей: USB 2.0 HS/FS, Ethernet MAC 1Gbps,
CAN-FD, SPI, I²C, UART, PWM, таймеры и др. " Andreas(1 знак., 29.07.2025 17:18, ссылка)
- +1 - LightElf(29.07.2025 17:00)
- и водопровода - Kpoк(29.07.2025 10:53)
- Где? Не увидел ничего про представленную периферию. - petrd(29.07.2025 10:15)
- Хороший, точный АЦП сделать на одном кристалле рядом с
высокоскоростными цифровыми схемами весьма непросто. А если нужен
очень быстрый АЦП, то его можно сразу к FPGA прикрутить, в которой
реализовать некоторую фильтрацию оцифрованных результатов. - reZident(29.07.2025 10:15)
- Хочу задать здесь вопрос по теме написания программного ядра
(основной программы с нуля и пользовательской подгружаемой)
специализированного промышленного контроллера. Хочу услышать
советы, ваше мнение по данному вопросу: Имеется пром. контроллер
выполненный на STM32F407, также имеются дискретные порты
ввода/вывода (включая инкрементальные), аналоговые вводы/выводы
(токовые, напряжения), MODBUS RTU/TCP - Как лучше написать
пользовательскую программу управления объектом Make_Pic(268 знак., 26.03.2024 08:28, MCU, полностью)
- Если тема актуальна ... У меня всегда интеллект управляет
контроллером СНАРУЖИ по интерфейсу без требования к реалтайму (он
то и реализован в контроллерах). Например, ПИД регулятор есть,
уставка приходит с наружи. Мотор стартует по команде, а
останавливается по локальным условиям. Пользовательская программа
на бэйсикоподобном скрипте, в простых системах на C c X-macro. В
принципе, отладив логику на PC, можно потом положить внутрь. - VLLV(26.01.2025 21:00)
- Составьте бизнес план вашего контроллера/линейки:сферу применения,
необходимый функционал, конкуренты, объемы продаж, себестоимость,
расходы на написание ПО, поддержку только без прикрас. Причем все
это при возможных изменениях в будущем. Может вмешаться политика,
снимут санкции в ближайшие пару лет, сможете конкурировать? Чем
длиннее вывод на рынок, тем больше рисков. Насчёт ПО, к мэковским
языкам вероятно добавится язык использования нейросетей и
тестирования ими же. jlm(186 знак., 22.01.2025 07:44)
- Следование стандартам как-то более полезно чем написание
самопальной системы ни с чем не совместимой. Поэтому либо порт
языков ПЛК МЭК для промышленных применений либо порт ардуины для
самодельных красноглазов, а еще лучше и то и другое. - Boвa(22.01.2025 05:53)
- Порты и периферия отдельными модулями ? - Aleksey_75(21.01.2025 12:30)
- Вот лично мне совершенно не нравится то, что пихают юзеру в
качестве "ЯП для ПЛК". Поэтому под китайские клоны "ПЛК" FX3U я
просто написал свою сишную прошивку. Нет ничего удобней, чем писать
программу на языке программирования, а не мышкой дрочить! - Eddy_Em(21.01.2025 09:47)
- ... сишную прошивку, тобишь свое ядро на базе сишного говнокода от
китайцев аля митсубиСИ? - Make_Pic(25.01.2025 11:22)
- Ты совершенно прав. Но роль FBD не в обеспечении удобства, а в
....защите инвестиций. Путем снижения порога вхождения и
принципиальной невозможности писать сложно. Cкpипaч(355 знак., 21.01.2025 10:53)
- +1. У нас на НПЗ девочки за 40 в графической оболочке лепили
программы для ПЛК из кубиков чуть не быстрее, чем в тетрис и лайнс
рубились. Заставить их изучить сишник и растолковать как им
пользоваться я ваще не представляю. Про слесарей, обслуживающих все
это добро и тем более. А картинку им показал и им все понятно. Чота
им разъяснять по вороху распечаток пусть юные энтузиасты, считающие
себя круче других, пробуют. - Codavr(21.01.2025 22:28 - 22:31)
- Если речь об уиитазном бачке то поверю. А если речь упаковочной
линии со 100 состояний на десятке вложенных автоматов... - IBAH(21.01.2025 22:29)
- Что-то мне подсказывает, что писать автоматы на специально
предназначенном для этого языке SFC проще чем на Си - AlexG(22.01.2025 04:47)
- Комплекс каткрекинга тебе о чем то говорит? С момента постройки в
1960м весь завод был на пневматике. Во второй половине 80х начали
переходить на ПЛК. Все осуществлялось силами КИП. К концу 90х все
работало на ПЛК. Заводик имел проектную мощность пререработки 16
млн.тонн нефти. Codavr(1 знак., 21.01.2025 22:58, ссылка)
- Я же и говорю - система диспечерезации. Вся автоматика на уровне
унитаза. Любой кирпичный завод на порядок сложнее. IBAH(1 знак., 21.01.2025 23:03, youtube)
- Может поэтому тебя и не приглашают автоматизировать НПЗ. Ты
попробуй, там бабло такое крутится, что тебе и не снилось. Там
одного парафина производится на сто лет работы твоих свечных
заводиков хватит. Коплекс гидрокрекинга еще в начале 90х собирались
строить, завод Славнефти предали и денех сразу не стало. Сейчас уже
построили, в несколько сотен гринолямов под ключ со всеми ПЛК и
алгоритмами. Тыщу проблем сразу сняли. Может и ты на что сгодишься. - Codavr(21.01.2025 23:29)
- Как говорит Скрипач, тебе виднее. Я знаю только одно, что любая
работа проста и легка, пока ее делаешь не ты. А заставь тебя
получить 76 й бензин смешав 5-7 разных от прямогонки и ректификата
до алкилата и каткрекинга на потоке прямо в трубе и попасть в гост,
вот тут ты и будешь репу чесать. Пиндосы закупают нефть в России
из-за того что наложили санкции на Венесуэлу, не патамушта в мире
заебатойнефти слишком мало, и не патамушта российская сильно
дешевле, а патамушта Codavr(190 знак., 21.01.2025 23:21)
- Ни разу в жизни не сталкивался со столь сложными алгоритмами (100
состояний, вложенные автоматы). В реальной жизни их обычно
разбивают на более простые. - Cкpипaч(21.01.2025 22:38)
- Ты совершенно неправ. FBD ( а лучше LD) позволяет легко
обрабатывать исключительные ситуации (отказ оборудования), причем
не программой, а пользователем. У наладчиков даже есть такой термин
"Цепь не собирается". Программисту не утруждает себя обработкой
отказа 100500 датчиков и исполнительных механизмов, это за него
сделает наладчик. В результате программа значительно дешевле и
наладчик при деле. - IBAH(21.01.2025 22:25)
- FBD тоже позволяет вставить таймер, кто-то из знакомых вроде
практиковал. AlexG(1 знак., 21.01.2025 16:30, картинка)
- в шахматах это называется "защита печника" LordN(36 знак., 21.01.2025 12:59)
- если делаешь какой-то взрослый недешевый пром ПЛК, то
предусматривай сразу возможность загрузки юзер-проекта на ПЛК с
флешки, без участия компа. плюс копипаст проекта на другие LordN(270 знак., 21.01.2025 07:48)
- Думаю, что в качестве примера стоит посмотреть на Сrossrw
FBD-runtime и XOD AlexG(2 знак., 27.03.2024 19:15, ссылка, ссылка)
- Наверное мне сейчас сразу прилетит за Arduino..., но можно делать
подобное в FlProg . arisov77(135 знак., 26.03.2024 16:28, ссылка, ссылка)
- Я свой метод уже упоминал. Надо изучить язык ST(FBD) и писать на Си
пользуясь той же парадигмой. Например, вот так я вызываю регулятор в главном цикле IBAH(1303 знак., 26.03.2024 14:37, ссылка)
- OpenPLC Можешь поискать это слово по caxapa, тут на него
наталкивались. Это готовый редактор IEC 61131-3 языков. Правда есть
один большой жирный минус. Выходной результат IEC языков ты
получаешь только в виде ARM бинари, которую можешь вызывать из
своего кода. Сишного кода нет. - RxTx(26.03.2024 12:37)
- Есть такой проект - YAPLC. Там товарищи реализовали ПЛК (с
привлечением Beremiz), но не суть. Они там сделали ядро (BSP,
реализующее системные функции и связь с железом) с которым
пользовательский код, синтезированный Beremiz
(IEC->промежуточное описание->код на С->gcc),
общается через ABI. Собственно пользовательский код можно написать
и на голом С, без извращений. Вполне у них можно подсмотреть
реализацию. Chum_A(1 знак., 26.03.2024 09:24, ссылка)
- Первое над чем подумать, как будет внутри устроена пользовательская
программа. Будет ли это конечный автомат? Будет ли у пользователя
мультизадачность? Насколько это будет черезжопно, чисто на уровне
текста? А то видел я контроллеры "на Си", в которых задержку
предлагали блокирующим sleep() делать. Cкpипaч(576 знак., 26.03.2024 09:14)
- Если нативный Си, то нужно слепить небольшой ABI для связи
ядро<->подгружаемый модуль. Таблица указателей на функции
или что-то в этом духе. Есть ещё вариант q3vm, там тоже Си, но
компилируется в байткод, который потом интерпретируется. - SciFi(26.03.2024 08:37)
- Предлагаю в один топик собрать различные пиксельные фонты. Кому не
жалко (для себя на память) можно прямо в ответном сообщении грузить
образец и сам фонт. General(56 знак., 24.03.2017 09:31 - 27.07.2025 22:20, MCU, ссылка, ссылка, полностью)
- В свое время создали утилиту для конвертации шрифтов Windows. Во
вложении исходник. Легко можете переделать в нужный формат. Данное
ПО применялось в проекте со сглаживанием для TFT дисплея. Nikolaev_Aleksey(63 знак., 01.09.2021 10:52, ссылка, картинка)
- Вдогон - General(31.08.2021 20:42, ссылка, ссылка)
- Китайский интерфейс кто нибудь делал? Какой высоты надо делать шрифт, чтобы иероглифы разборчиво получилось? - mr-x(03.08.2017 18:01)
- А вот такой подход заинтересует ли? Буквы (и цифры) разной ширины - по жизни оно так и есть - и первый байт в каждой букве указывает её длину. - Крок(28.07.2017 11:21)
- «Все еще не могу забыть эту штуку про свиней ©» → Что, если делать не пиксельные, а «полувекторные» шрифты? Строки хранить дискретно (построчно), как всегда, а столбцы — не попиксельно, а отрезками. У каждого есть начало и Николай Коровин(244 знак., 17.07.2017 18:38, ссылка)
- Вот здесь коллекция теплых ламповых шрифтов. - LightElf(06.07.2017 10:52, ссылка)
- когда делал свою GUI, набрел на программку TheDotFactory, немного допилил для понимания CP1251 (по ссылке), теперь шрифты не вопрос. Хотя для 8х6 вариантов немного. Программа позволяет формировать как моноширные шрифты, так и с переменной шириной. AVF(29 знак., 28.03.2017 12:06, ссылка)
- Тоже про шрифты. Давно уже хочу поделиться с общественностью. il-2(28.03.2017 10:34)
- Такие пойдут? KT(171 знак., 27.03.2017 20:52)
- Так Lcd Icon Editor вроде для этого как раз и заточен? Может вытягивать шрифты из винды. - KT(27.03.2017 20:47)
- Только пиксельные или 16-сегментный+точка тоже норм? Найдите два одинаковых знака :) Николай Коровин(27.03.2017 20:43)
- Вот мои простенькие 7х5 и 8х14: MBedder(304 знак., 25.03.2017 14:12 - 26.03.2017 16:19)
- 4x6,5x6,6x8,8x8: ferrum(20235 знак., 26.03.2017 16:18)
- Есть наношрифт -0123456789.XY размером 3x5, но это, наверное, до абсурда тривиальная вещь — проще его в хексе набить, чем тут искать… - Николай Коровин(24.03.2017 21:58)
- Таймс Нью Рома пойдёт? Барбос(143 знак., 24.03.2017 21:09)
- Вот моя коллекция. ttf2pcx, конечно, хорошо, но вот такое он не может Alex B.(24.03.2017 14:42, ссылка)
- Наверно не совсем по теме. Шрифты растровые 6х8 и 6х10, cp1251 il-2(501 знак., 24.03.2017 12:35 - 12:37)
- Использую утилиту ttf2pcx, она виндовые шрифты превращает в пиксельные и выгружает в виде PCX, умеет и с оттенками серого. Слепил программку, которая превращает этот PCX в массив с применением RLE, вариант с 8 оттенками серого. SciFi(1848 знак., 24.03.2017 10:18 - 12:22, ссылка)
- Известный шрифт Terminus blackprapor(411 знак., 24.03.2017 10:35)
- Знатоки LWIP, подскажите. CaйpycCмит(956 знак., 11.07.2025 14:59,
, MCU, полностью)
- Подскажите проверенный на практике JSON для микроконтроллеров, для
обмена по сети. Маленький, быстрый, качественный. - EmbedProg(11.07.2025 15:16,
, MCU, полностью)
- Подскажите как "красиво" загружать и хранить в памяти в
микроконтроллера различные конфигурации (константы, значения
переменных, условий переходов и т.д.)? Желательно с примерами кода. - Make_Pic(27.03.2024 09:13, MCU, полностью)
- Чего-то вы тут реляционную БД уже насоветуете... Красота в
простоте! Как делаю я... IBAH(818 знак., 11.07.2025 15:29)
- Самая красивая и полная сериализация это JSON. dumb_and_dumber(600 знак., 11.07.2025 12:43,
)
- Ихмо первый вопрос: Что за микроконтроллер? Мне всегда было
интересно: почему из этой самой необходимой информации всегда
делается великая тайна? Второй вопрос - ответственность устройства,
что будет если настройки будут утеряны. Третий вопрос. Это серийное
устройство? Какова будет статистика, каков объем серии? Четвертый
вопрос - условия работы устройства. Пятый вопрос - это
само-сохранение у девайса или к параметрам есть внешний доступ?
Шестой вопрос - количество RxTx(44 знак., 27.03.2024 15:48)
- Мне эта тема очень близка, я как раз перерабатываю БД настроек.
"Красиво" понятие очень неопределенное. Можно долго с гармошкой
вприсядку рассказывать о красоте и ни о чем... Что означает
"красиво"? RxTx(51 знак., 27.03.2024 15:43)
- Решение очень сильно зависит от структуры данных. Если это единый
массив, который будет записываться только целиком, это одно
решение. Если это 100500 отдельных параметров, каждый из которых
может меняться отдельно, будет другое решение. Если комбинация, то
третье решение. Еще решение зависит от готовности к потере данных,
т.е. допустимо ли потерять настройки (выключение питания при
перезаписи и т.п. сбои), или такое не допустимо. - AlexBi(27.03.2024 10:22)
- Красота в глазах смотрящего. Так-то можно сказать, что "красиво" -
это как в настоящих компьютерах, то есть файловая система. - SciFi(27.03.2024 09:26)
- А в чем: EEPROM или Flash? Eddy_Em(808 знак., 27.03.2024 09:18, ссылка)
- У вашего метода есть особенность, если вдруг при стирании
произойдет какой-то сбой/сброс, все данные будут утеряны, т.к. нет
второго блока во флеше, который бы хранил данные в таком случае.
Надо быть готовым к такому повороту. - AlexBi(27.03.2024 12:31)
- Во flash - Make_Pic(27.03.2024 09:25)
- У меня знакомый, в достаточной мере живёт тем, что обновляет
прошивки телевизорам, когда те записывают настройки "громкость" или
"каналь" во флэшь и "происходит чота страшное". Ему приносят кирпич
и деньги. Получают телек. Что за промблемма поставиь внешнюю
ЕЕПРОМ? Они щас копейки. - mse homjak(27.03.2024 12:42)
- Если кривые ручки запороли флешу, они и с еепромой справятся. - SciFi(27.03.2024 12:44)
- Да, но с ЕЕПРОМ не получится кирпича из поделия. - mse homjak(27.03.2024 12:46)
- Запросто. Звукашки Vibra16 ISA PnP и сетевушки Realtek PCI сразу
вспоминаются. Первые при слете ставили раком комп, вторые меняли
Vendor/DeviceID и теряли драйвера. Да и мониторов было несколько
семейств (не помню уже кто, ViewSonic вроде). - LightElf(27.03.2024 15:04)
- Не, я не против. Можно написать хуйню любой степени лютости,
которая поставит раком всё, до чего дотянеца и безо всякой ЕЕПРОМ.
Просто, если у нас есть код записи во флэшь, он, чисто
теоретически, можэт выполниться нештатно: не в то время и/или не в
то место. А если нет, то нет. Данные в ЕЕПРОМ, можно, хотя-бы,
выставить по умолчанию, если чексумм не сошолся или ещо чего. Когда
затёрт сегмент флэши, ловить нечего. - mse homjak(27.03.2024 17:59)
- Вы недооцениваете потенциал кривых ручек :-) - SciFi(27.03.2024 12:51)
- Тогда мой код подойдет. Еще надо в ld-скрипте пометить первую же
свободную секцию с выравниванием на размер блока - чтобы всю
свободную флеш-память можно было под хранилище организовать. Eddy_Em(389 знак., 27.03.2024 09:56)
- эмулятор EEPROM abivan(1 знак., 27.03.2024 09:33, картинка)
- Поясните где дырка в коде, почему компилятор так себя ведёт (Keil
6)... POV(719 знак., 03.07.2025 22:47, MCU, полностью)
- если таймер0 не используется в системе и tasks[0].timer не
проинициализирован, то сразу же будет выходить с NULL на выходе Oman(107 знак., 06.07.2025 10:33)
- Причем тут таймер0? - POV(06.07.2025 17:51)
- Поставь continue вместо первого return NULL и проверь, прав ли я. В
чем сложность? Oman(61 знак., 06.07.2025 19:19)
- ну вот... POV(182 знак., 06.07.2025 20:19, картинка, картинка)
- может после проверки if(!t) ничего по этому указателю в обработчике
больше не делается? - Vit(06.07.2025 21:35)
- "при статик работает".. значит - делается - POV(06.07.2025 21:38)
- получается массив пакованных структур - Vit(06.07.2025 21:46)
- не, всё там норм. никакой упаковки POV(1 знак., 06.07.2025 21:49, картинка)
- Коль структура так упорно применяется без выравнивания, то может
стоит попробовать временно вместо uint8_t num применить int num? - reZident(06.07.2025 23:03)
- мне тоже uint8_t по середине структуры не нравится, либо ее в
uint32_t либо в самый конец структуры. - Oman(07.07.2025 10:25)
- Стопе! Это вообще не в ту степь! Проблема не в данных, а в
вовзращаемом указателе. Пофиг что в массиве хранится. - POV(06.07.2025 23:05)
- Покажите уже ассемблер, выдаваемый компилятором, особенно начало
TMR2_GLOBAL_IRQHandler, так будет понятнее - AlexBi(07.07.2025 08:44)
- Кстати, меня несколько напрягают умолчания в if, где логическая операция отрицания (!) применяется к переменной, имеющей тип указателя. Я не настолько знаю язык, чтобы спрогнозировать, а не заменит ли
компилятор обращение к переменной указателя со значением NULL на
обращение к какой-то "левой" переменной, имеющей такое же значение
NULL? Вам ведь уже предлагали расписать эту операцию явным образом,
без умолчаний по автоматическому преобразованию типов данных. - reZident(06.07.2025 23:48)
- Доступ к элеентам разной размерности в невыровненной структуре
может приносить чудные чудеса. Например, запись в байтовую num при
нативной 32-разрядной системе портить 2-3 байта соседних
элементов-указателей. - reZident(06.07.2025 23:11)
- для начала можно в map-файле поискать адрес массива для каждого
случая - Vit(06.07.2025 23:11)
- а можно в занулении массива поставить просто нолик? - Vit(06.07.2025 22:00)
- Пойдем простым логическим путем, с отделением мух и котлет. il-2(568 знак., 06.07.2025 06:57)
- Еще бы знать, где этот tasks определен и зачем его искать в цикле
постоянно никнeйм(274 знак., 04.07.2025 16:13,
)
- Должно работать. Попробуйте: а) разделить объявление переменной
timer_task_t *t и присвоение; б) убрать static из timer_task_t*
get_tmr(uint8_t num) - 3m(04.07.2025 15:36)
- Возможно это тот случай, когда имеет смысл посмотреть ассемблер,
т.е. что там компилятор сделал. В первую очередь посмотреть начало
TMR2_GLOBAL_IRQHandler Можно его увидеть? - AlexBi(04.07.2025 08:26)
- похоже запись в tasks[i].timer только в этом же обработчике. а при
нуле в на входе и делать нихрена не нужно - Vit(04.07.2025 00:55)
- Я понимаю, что NULL это по сути 0, но всё равно не нравится условие
if (!t). Лучше писать if (t != NULL). Также надо проверить размер
стека в стартапе, вдруг реально не хватает, тем более, что static
помогает. - FDA(03.07.2025 23:39)
- Когда переменная объявлена static , то память под нее выделяется в
сегменте .data . qwerty__(132 знак., 03.07.2025 23:02,
)
- Я конечно не программист, но у меня вызвает сомнения вот такая
конструкция sizeof(tasks)/sizeof(tasks[0]) . Возможно результат
целочисленного деления равен нулю и поэтому функция всегда
возращает NULL. Компилятор просчитывает этот момент и не видит
необходимости вставлять вызов функции в обработчик прерывания. - reZident(03.07.2025 22:58)
- Вот тут как-то так получилось. В кубе обнаружил, что ежели вход
аналоговый, то на него можно посадить и АЦП и компаратор
одновременно. Это логично. А в референсе мануале про это не нашёл
ничего. Аглицкого не знаю, перевожу со словарём. Может пропустил
чего? Хочется какого-то подтверждения, чтобы прямо словами. - Бapбoc(27.06.2025 23:59, MCU, полностью)
- Вот тута прямо пишут, что можно одну ногу подключить и к ADC и к
компаратору. Но предупреждают, что зарядка емкости УВХ может
вызвать срань на выходе компаратора. LightElf(853 знак., 30.06.2025 19:31, ссылка, ссылка)
- не пригодится? Ralex(1 знак., 30.06.2025 12:26, картинка)
- Правильно будет не "в кубе", а "на Кубе", потому что остров. - SciFi(28.06.2025 09:59)
- В рефмануале специально на этот случай :)) картинки есть. По ним
видно что аналоговые сигналы приходят прямиком на ногу, более того,
после триггера Шмитта на входе тоже никаких переключателей нет.
Поэтому этот цифровой сигнал в любом режиме можно прочитать через
регистр IDR, а также, выбрав альт. функцию, подать на вход одного
из периферийных устройств. - ЫЫyкпy(28.06.2025 06:26)
- Не по теме МК... POV(141 знак., 21.07.2005 13:20,
, MCU, полностью)
- Помню такое. Инклинометром кличут. Когда у меня висело мое резюме
на hh.ru, ко мне звонил один ненормальный из "тех" - кто осваивает
актуальные темы. В тот год в связи с разгерметизацией емкости на
нефтебазе (не помню - где это было) актуальной была тема контроля
за этими емкостями. ТЗ, с которым мне любезно дали ознакомиться
явно писал сумасшедший. Предполагалось обвешивать стенки емкости
инклинометрами с точностью 0.1!!! градуса. Без всяких проводов,
ессно. Не помню точно il-2(140 знак., 08.05.2025 14:59)
- Красну ягоду рвали вместе... А чегой-то все как космополиты
безродные раскрашены? - Kpoк(07.05.2025 23:07)
- Ответ: Акселерометр скорее всего подойдет, например, MMA1260D, MMA1270D Freescale(94 знак., 22.07.2005 15:53,
)
- Вот заврался - я ошибся с рассчетом, погрешность нужна 1,5 градуса, а не 0,1. - POV(22.07.2005 09:34,
)
- я так понял нужен электронный гироскоп? LordN(151 знак., 21.07.2005 23:34,
)
- Это вполне стандартные изделия --> - AVR(21.07.2005 21:44,
, ссылка)
- несколько контактных трубок со ртутью под известным углом ... - nestandart(21.07.2005 16:17,
)
- Можно приспособить encoder 12-bit - Vit(21.07.2005 16:08,
, ссылка)
- а если железный грузик на "нитке" над катушкой, или светодиод(зеркальце) над матрицей (например из опт. мыши)? yes(69 знак., 21.07.2005 15:15,
)
- Может, 3х-осевой акселерометр подойдет? У АД он в пререлизе - Алексей Мусин(21.07.2005 15:04,
, ссылка)
- Полупроводниковый датчик давления направить "вверх" и залить в капилляр воды или ртути. - General(21.07.2005 13:31,
)
- Попал я как кур во щи. Есть платка. Стоял там stm32f103. Я впаял
apm32f103c8. Если прошить - все работает. Скинул питание, подал -
не запускается. Запускается, только если палец приложить в районе
кварца и пинцетом ресет коротнуть. Снова работает до скидывания
питания. Думал кварц и обвязка. Менял - не помогло. Более того -
запустил от внутреннего. Вся картина точно такая-же. Питание,
палец, ресет. Говорят, если впаять стм - все равботает. В общем
чертовщина. Питание на vesago(135 знак., 18.06.2025 09:20, MCU, полностью)
- Посоветуйте библиотеку для генерации звуков на embedded linux
платформе(Allwinner T113-S3). Купился было по красивому описанию на
soundpipe, но документирован крайне скудно, примеры есть, но
полного представления о том, что и как, тоже не дают. Пытался от
deepseek получить вменяемую подсказку, но увы .. - Rainman62(14.06.2025 11:19, MCU, полностью)
- Подскажите, можно ли используя порт ввода на STM32 чисто аппаратно
защелкнуть одиночный импульс и после перезагрузки прочитать, что
был импульс? - Make_Pic(10.06.2025 08:28, MCU, полностью)
- А если такой вариант: при срабатывании WDT вызывается прерывание,
обработчик которого записывает событие и потом вызывает программный
сброс? - Make_Pic(12.06.2025 08:18)
- А какова для тебя приоритетность причин перезапуска? Например, 1)
авария питания, 2) авария внешней периферии/аппаратуры, 3)
зависание программы. В принципе во всех трех случаях можно делать
перезапуск устройства, выключая его питание. У нас именно так
работает внешняя схема WDT - выключает питание всего устройства на
время, достаточное для разряда всех конденсаторов во вторичном
питании. А м/с супервизора, формирующая сигнал RESET нужна в
основном лишь, чтобы reZident(173 знак., 10.06.2025 15:31)
- Вроде бы на некоторых stm32 есть регистры BKP, которые не
сбрасываются. Можно зарядить DMA, чтобы по импульсу туда что-то
записывало. - SciFi(10.06.2025 08:32)
- Кому-нибудь попадалась документация на чип Mstar MSB2122? Реально
для него написать свою прошивку? - AlexG(04.06.2025 06:04, MCU)
- Вопрос по CH32V003. reZident(509 знак., 28.02.2025 20:35, MCU, полностью)
- хорошая вещ, я на нем сделал несколько проектировщиков. написал
компоненты klen(661 знак., 01.03.2025 16:51)
- ср32v003 10р штука.... штеуд бъется в предсмертных конвульсиях, так
скоро дело дойдет до Куртки и Лизочки klen(1 знак., 03.03.2025 13:29, ссылка)
- серия - ch32x035 интересная, ядро даже лучше чем v203 но 48МГц и
только HSI, память почти у всех 62K/20K, уже платка пришла, чипы
идут, есть - qsop28 - Zikon(01.03.2025 18:19)
- таки да! забыл сказать, думаю важно стратегически - серия 003
состоит из одной микросхемы 003, ядро V2A - не имеет умножителя
(rv32ec), это важно, серия 00x (002,004,005,007 007M)- работа над
ошибками, ядро V2С добавили умножитель (rv32emc) и добавили озу минимум в 2 раза. сейчас не рекомендую 003. я бы
лучше 00X принял если изделие не мега-гига-турбо-серийное что бы
30р копеек сэкономить, разработка и переделывание дороже. klen(372 знак., 03.03.2025 13:31, ссылка, картинка)
- Вот здесь программки есть которыми пользуюсь и доки только
разбираемся, на github-е очень много разных шаблонов можно найти.
Многие используют PlatformIO для VSCode Программатор WCH-LinkE
програмка к нему тоже есть и через MRS можно Zikon(7 знак., 01.03.2025 08:19, ссылка)
- В своё время была делема о двух кнопках на минималках, победил
энкодер с "кнопкой" . О чём не жалею, удобно. - enc(28.02.2025 21:08)
- Для загрузки ПО достаточно одного вывода, он там типа SWDIO, и
землю. См. CH32V003nano. Nikolay_Po(281 знак., 28.02.2025 20:53, ссылка)
- WCH-LinkE, 1 провод - Single Wire Debug. - Гyдвин(28.02.2025 20:51)
- У CH32V003 отладка и загрузка ПО по одному проводу идет что ли? О.о reZident(2 знак., 28.02.2025 20:48, ссылка, картинка)
- Ну да. Кроме земли, больше ничего и не надо, если у чипа своё
питание есть. - Nikolay_Po(28.02.2025 20:54)
- Угу. Мне чтобы в схеме (в готовом устройстве) потом ПО грузить. - reZident(28.02.2025 21:03)
- Там в 003 у затейников китайцев чудесатые чудеса встречаются. Есть
загрузчик, но в малоногих чипах нет ноги для активизации - надо
вызывать из своего кода. Есть SPI, но отсутствует нога СLC ;) Если
чО - пытал 8-лапые 003. Ну и таой же "достойный" прародитель
периферии - STM32, етить... - Гyдвин(28.02.2025 21:29)
- АЦП у них можно применять? Мне один НЧ сигнал оцифровать нужно.
Типа аналогового компаратора с установленными пользователем порогом
и временем реагирования на срабатывание. - reZident(28.02.2025 21:33)
- вот один из вариантов использования ch32v003 пример как раз с АЦП Zikon(7 знак., 01.03.2025 08:10, ссылка)
- Меня устроил. Во, даже "техдокументация" осталась ;) Замерял
напряжение свинцового аккумулятора и оценивал сопротивление
контакта перед подачей сварного импульса (чтобы не было бабаха с
искрами). Выставил кнопкой минимальную длину импульса, убедился,
что многоцветный LED это подтверждает, оценил надежность контакта
электрода, бибикнул и после паузы....... TC4422 питал, кстати,/
специализированной повышайкой 16В, стабилизатор 5В с развязкой
диодом и буферной емкостью. Гyдвин(440 знак., 28.02.2025 22:23, картинка)