Вадим Минкин @vadjuse
Пользователь
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность
Специализация
Embedded Software Engineer, Software Architect
Lead
STM32
Embedded system
Electronics Development
PCB design
Arm Architecture
Development of printed circuit board
Digital signal processor
Sound processing
Creating sound effects
Нелогичное высказывание с вашей стороны. Электроника для вас сложна, потому что вы не поняли азы. Это скорее признак, чем причина или следствие. Верное было бы "электроника для вас сложна И вы не понимаете азы". Но я и сам в своих статьях пытаюсь в этом разобразоться:
"Почему электроника настолько сложна, если даже азы ее настолько непонятны и требуют очень аккуратного и вдумчивого анализа?"
Нелогичное высказывание с вашей стороны. Электроника для вас сложна, потому что вы не поняли азы. Это скорее признак, чем причина или следствие. Верное было бы "электроника для вас сложна И вы не понимаете азы". Но я и сам в своих статьях пытаюсь в этом разобразоться:
"Почему электроника настолько сложна, если даже азы ее настолько непонятны и требуют очень аккуратного и вдумчивого анализа?"
Статья не о том, как сделать цап, а о том, что аналоговая электроника довольно сложна даже в своих относительно простых проявлениях.
Очевидно, что нельзя просто так взять и сделать не то что 24-бит, но даже 16 или 8 бит цап.
я посмотрел, да там есть эти схемы, но они представлены без объяснения самого протекания токов.
и на то, и на другое. Чем хитрее схемы, тем лучше
покидайте ссылок, пожалуйста, мне интересно
больше всех в колхозе работала лошадь, но начальником она так и не стала
Можно и так и так. В случае TXE вы просто немного быстрее быстрее избавляетесь от данных, на суммарное время отправки влияет не сильно.
Согласен, пример кода не является исчерпывающим. Но в рамках этого примера невозможна ситуация, когда усарт захочет сбросить очередь, а приложение в этот момент насчитает еще одно число. Два процесса имеют разные скорости, поэтому по очередь отправки сначала забивается процессом, а потом прерывание медленно всё отправляет и сбрасывает очередь.
Другое дело, если бы приложение генерировало новое значение асинхронно, тогда да, откуда извлекающий из очереди может знать, что приложение не находится в критической секции.
Но мне кажется, что для данной статьи пример пойдет. С образовательной точки зрения лучше прогнать один неплохой пример вдоль и поперек, чем бросать разнообразные примеры, которые новичка только сильнее запутают.
Асинхронность это явно не тема для одной статьи.
вот ссылка на видео с работой устройства. Это музкальный синтезатор
volatile это намек компилятору, что переменную не надо располагать в статической памяти, ибо она изменчивая и будет перезаписана.
Я не уверен, что компилятор прям обязательно поместит неволатильную переменную в статическую память.
Я никогда не выключаю прерывания во время других прерываний, потому что хочу чтобы они происходили и обрабатывались. Каких-то плохих вещей совсем не происходит. Но надо смотреть по обстоятельствам, я не буду утверждать, что только так и никак иначе.
А про атомарность я в статье рассказываю, что в асинхронном мире все строится с предположением, что в любой момент процесс может быть прерван (в том числе и операционной системой)
есть много вычислительных задачек для микроконтроллеров разной степени абстракции.
Лично я разрабатываю цифровые синтезаторы (по сути вычислители функций с вектором аргументов), и там я сталкиваюсь со множеством асинхронных проблем
вообще годная статья, думал о таком, но не знал, что есть инструменты.
Сложно, но надо прогнать на своём проекте
Реактор это же всего лишь виртуальный модульный синтезатор.
Орнамент по сути да, это модуль. Но даже среди еврорэка того же, он выделяется. Это как модуляр для создания модуля секвенсора.
Почему не генераторы и фильтры. Потому что такие модули уже успешно существуют. Моя цель была в создании секвенсора для генерации ритмических рисунков интересным нетривиальным способом
Структурная схема тоже будет, но она крайне примитивная. Устройство представляет из себя 8 моновибраторов с несколькими входами и выходами, работа которых описана в статье. В дефолтном состоянии они никак не соединены.
То есть, если ячейки между собой не соединять, то абсолютно ничего интересного с ними не произойдет. Просто моновибратор, который можно запустить с одной кнопки и сбросить с другой. Он постоит-постоит время TIME и сам сбросится.
В том и дело, что для более глубокого понимания, нужно прям конкретно погружаться во временные диаграммы, изучать работу различных патчей. А зачем оно нужно? Представьте, я начал бы статью "есть вундервафля, она может вот так, так и так. Количество вариантов неограничено, трали-вали, конечные автоматы, запутанный хаос, ...." Если не понимать контекст устройства, то все эти временные диаграммы в вакууме просто оттолкнут основную часть аудитории.
Да, вы правы, немного нахожусь на своей волне. Думал, что временными диаграммами сильно усложню и перегружу статью. Задумывал эту статью больше как вводную о том, почему прибор такой.
В этой статье уже ничего не буду исправлять, но раз люди просят, сделаю отдельную, где будут показана работа с подробными диаграммами таймингов.
спасибо, я старался
да, в общем в следущей статье и хотел этого коснуться, что можно решать дифуры с помощью вычислений на операционниках
не знал, ознакомлюсь
это не зануда моде, а олд моде. Потому что я не знал, спасибо за уточнение)