Pull to refresh
-21
AVI-crak @AVI-crakread⁠-⁠only

Пользователь

Send message

Где доступ к регистрам и периферии?

Хорошая доска, дорогая… Я своих подопытных из бесхозных железяк сдуваю, для опытов. Но такой свежести ещё не встречалось.
Оно как-то автономно может работать? Чтобы свой код посмотреть.
Меня вот удивляет одна вещь, соревнования по скорости сортировки максимально оторваны от реальности, и всем на это глубоко пофиг. Сортировка одного массива — это почти академическая задача. Она требуется всего пару раз в жизни…

В реальности гораздо чаще нужно сортировать многомерный массив — результат сканирования таблиц, или любого большого количества данных хоть в какой-то структуре хранения. Массив в виде адресов, индексов, числовых и текстовых значений… То-есть изначально разношорстный комок данных.
Для этого есть готовые алгоритмы сортировки, но видимо они слишком сложны для рассмотрения.
Наработка на отказ данного типа сканирующих зеркал составляет триллионы изгибов подвесов (на которых данное зеркало закреплено).

Число большое, но в реальности это меньше одного года непрерывной работы.
В этом нет практического смысла даже для теоретиков.
В реальности есть цифровые системы исчисления с фиксированным шагом приращения (x++;), и аналоговая (напряжение и фазовые свойства волны) — с плавающей точностью.
Вся разница в ограничениях применения оператора "++".
В цифровых системах всего два варианта считаются стандартом: двоичная и десятичная. Изобретать тут особо нечего, потому как даже после изобретения — придётся использовать десятичную систему для доказательств и объяснений, что довольно глупо.

А вот аналоговые системы исчисления — не паханое поле.
Здесь уже иная математика, другие законы и правила. Но и возможностей на голову выше.
Приколы начинаются с того что аналоговый вариант просто невозможно записать на бумаге с абсолютной точностью. Так-же событие равенства в такой системе будет бесконечно редким событием.
Можно играться с уровнем напряжения — это достаточно легко, но накладывает несколько фундаментальных ограничений, отчего математические возможности явно беднеют.
Гораздо интереснее играться с фазой сигнала фиксированной амплитуды. В этом случае доступна вся математика без ограничений и нарушений баланса энергий.
Вот оно не паханое поле.
Сейчас наборов для АМ радио в подобном виде — просто не существует. Если уж очень хочется — придётся детальки заказывать по отдельности, ну или в одном магазине комплектом.
Чтоб просто поиграться есть однокристальные FM приёмники, их много и ценники не выше сотни.
Для более продвинутых есть si4730 — всеволновый приёмник с цифровым управлением. На али есть готовые платки, для аурдинщиков.
Для максимально продвинутых si47972, это уже намного сложнее и дороже.
Всё это использует тот-же принцип что и в статье, за исключением более малых габаритов.
Управлять током защиты модуля по произведению ток*напряжение — и за это 1к баксов?
Смотри внимательней, курс «китайского» бакса — 200 рублей.
49$ != 3577р
В чём сакральный смысл демонстрировать устаревшую технологию?
Вот-же странность, фабрики работают на 120%, а чипов нет. Может стоит заинтересоваться, чего эти фабрики выпускают в таком огромном количестве. А главное — кто заказчик, и откуда у него столько денег.
В качестве примера коллега нашел вот такой фрагмент кода, который используется в продакшне:

Вот не лень-же было кому-то столько строк писать. Хотя есть подозрение, что это сделал автомат. Современные умные помощники с перекаченным AI — такие задания разгадывают за пару строк.
Смотрим что выдаёт функция: строку фиксированной длинной, значит все данные можно загнать в один непрерывный массив без нулей. Из 257 условных переходов останется ноль штук. Только прямое чтение из массива и добавление нуля. Строка полностью помещается в регистр, так-что проблем ноль.
Кхм, кто первый догадается продавать электронные чернила в качестве наклейки (без контроллера и стекла). Вот для таких применений как в статье.
Прежде всего — эта клавиатура с наклейками, которые стираются со временем.
Уж если есть возможность — то делайте клавиши двухкомпонентными: сначала буквы, потом остальная часть клавиши другим цветом. Такие кнопки если и будут стираться, то равномерно.
Saalur
Подмена интерфейса выхлопа cout — замечательно. Но меня не радует способ реализации. Использовать наработки урезанных по функционалу мк в виде базовых — очень плохая идея.
Хуже может быть только переключение типа ядра в готовой собранной библиотеке. Есть такие товарищи, и вы с ними обязательно столкнётесь.
Для совместной печати в ITM интерфейс — можно принудительно назначить номер порта. Это поможет избежать каши, но не уберёт взаимную блокировку. Кстати, это достаточно удобно.
Совместная печать через физику без деления на каналы — всегда головная боль. Нормального решения нет.

Кстати, вы подумали как отключать отладочную печать? Как реагировать в случае недоступности физического интерфейса? Каким образом управлять печатью в разных исполняемых файлах?
Причёсывать код конечно нужно, и даже необходимо. Но упор на ленивое программирование требует минимального количества нажатия клавиш.
код примера выстреливается за 9,2 мкс

Время работы физики определяется выбранным интерфейсом, и не является качественным показателем. Так-же как и режим блокирования основной программы, просто это нужно делать иначе — использовать внешний буфер для дма при работе с физикой, копировать туда данные для передачи, и обновлять задание для дма. Само дма полностью на прерываниях, связь через задания.
моё github.com/AVI-crak/Rtos_cortex/blob/master/sPrint.h
физики там нет, время преобразования в строку для одинарной или двойной точности 2us,
F7 на частоте 216MHz.
А с кодом вы что-то намудрили H7 умеет прекрасно умножать и делить, и не только целые числа. При этом печать массивов — самая большая глупость что можно придумать, такие данные оформляются в сырые пакеты, и отдаются как есть.
25q128 в корпусе WSON8 рядом с RP2040 — всё очень мелкое.
И за это хотят 1610 рублей?
Однако, запись формулы отличается от законченного продукта

Академические формулы которые описывают работу двигателя — не определяют его состояния в нужный вам момент, они общие, вообще для всего диапазона состояний. Они настолько далеки от практического применения — что не имеет смысла на них тратить время.
Мотор вообще очень простая штука, полностью аналоговая модель прекрасно его замещает. По этой причине нет смысла усложнять алгоритм, достаточно добиться приближения к аналоговой модели замещения.
Насчёт протоколов тоже мудрить нет смысла. Чем проще -тем надёжнее работа.
Насчёт тестов порадовали…
Ну невозможно как-либо производить отладку реально работающего двигателя. Даже если вас не убьёт потенциалом нуля горячего шасси — это сделает сам двигатель, когда вы остановите программу.
Я уже написал про модель замещения, вот на её эмуляции и выполняется отладка — там можно останавливаться и курить.
Spym
Код для векторного управления полностью помещается на экране монитора — примерно 30 строчек. Сам алгоритм простой как тапок, и он должен работать в реальном времени. Всё что для него требуется — занимает в флеше 60к, в памяти примерно 4к.
Умеет вращать от нуля до номинала, работать как серводвигатель.
100к сток кода там нафиг не требуется, двигатель на воде работать не будет.

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Registered
Activity