Comments 26
latch register имеет вполне устоявшийся перевод регистр-защелка, упомянутые Вами, помимо этого, задвижка, фиксатор, заслонка здесь явно лишние.
+5
Ах, этот latch. Вы тут, сами того не ведая, попали в одну из мозолей.
Я пытался найти «академические» переводы всех терминов. Не все мне понравились, но что делать. Но вот конкретно с latch мне «защелка» не нравится категорически. Я же гуманитарий, у меня образное мышление, и защелка для меня — это такой замок на двери. В электронном случае это что-то однобитовое, типа триггера, показывает состояние _замка_, но не двери. А latch в сдвиговых регистрах — это именно задвижка, потому что сразу открывает кучу битов. Это как задвижка на собачьих гонках — поднял вверх, все собаки побежали. «Защелка» этого смысла не передает.
Но это не все. Само latch в английском, по-моему, тоже не очень корректно, правильно было бы что-то вроде snapshot (снимок) или cast (слепок). Потому что, открывая его, мы не выпускаем собак, а выпускаем копии собак, сами собаки остаются на месте. Это актуально для сдвиговых регистров — копии битов вылезли наружу, но сами они остались в буфере, их можно двигать и снова использовать. Не уверен, что это как-то применяется, но понимание этого факта здорово помогает дебажить всякое. Например, я ведь на STM32 сперва просто чуть изменил атмеговский код, а на Атмеге нет BSY, и получил вроде как работающие светодиоды, только работали они как-то не так. Хорошо, что я к тому времени понимал принцип и быстро вычислил проблему.
В общем, я решил, что главное — не перевести термин, а объяснить его работу, чтобы сами слова latch и latched были интуитивно понятны. Отсюда задвижки, фиксаторы и прочая.
Извините, что многобукв, но вот реально тут попадание в мозоль, я долго думал, как эту тему компактно в текст всунуть.
Я пытался найти «академические» переводы всех терминов. Не все мне понравились, но что делать. Но вот конкретно с latch мне «защелка» не нравится категорически. Я же гуманитарий, у меня образное мышление, и защелка для меня — это такой замок на двери. В электронном случае это что-то однобитовое, типа триггера, показывает состояние _замка_, но не двери. А latch в сдвиговых регистрах — это именно задвижка, потому что сразу открывает кучу битов. Это как задвижка на собачьих гонках — поднял вверх, все собаки побежали. «Защелка» этого смысла не передает.
Но это не все. Само latch в английском, по-моему, тоже не очень корректно, правильно было бы что-то вроде snapshot (снимок) или cast (слепок). Потому что, открывая его, мы не выпускаем собак, а выпускаем копии собак, сами собаки остаются на месте. Это актуально для сдвиговых регистров — копии битов вылезли наружу, но сами они остались в буфере, их можно двигать и снова использовать. Не уверен, что это как-то применяется, но понимание этого факта здорово помогает дебажить всякое. Например, я ведь на STM32 сперва просто чуть изменил атмеговский код, а на Атмеге нет BSY, и получил вроде как работающие светодиоды, только работали они как-то не так. Хорошо, что я к тому времени понимал принцип и быстро вычислил проблему.
В общем, я решил, что главное — не перевести термин, а объяснить его работу, чтобы сами слова latch и latched были интуитивно понятны. Отсюда задвижки, фиксаторы и прочая.
Извините, что многобукв, но вот реально тут попадание в мозоль, я долго думал, как эту тему компактно в текст всунуть.
-2
Вообще, я не электронщик — дилетант, но во всей русской литературе это называется именно защелкой.
Смысл все и так понимают, даже если слово не совсем точное, а использование не устоявшегося термина только вводит в заблуждение неопытных любителей.
Смысл все и так понимают, даже если слово не совсем точное, а использование не устоявшегося термина только вводит в заблуждение неопытных любителей.
+3
Вы рассматриваете работу регистра-защелки в составе сложного устройства (многоканального светодиодного драйвера). Отсюда неправильная трактовка его работы, как чего-то, пропускающего сигналы на выход. Функция регистра-защелки заключается в фиксации (запоминании, «защелкивании») входного состояния по фронту управляющего сигнала. Возможно, упомянутый вами термин snapshot (снимок) и был бы более удачным, но раз уж на протяжении многих десятилетий, в течении которых существует цифровая схемотехника, используется термин latch, то им и следует пользоваться, если желаете разговаривать на одном языке с другими и быть ими понятым.
Насчет неудачных устоявшихся русских переводных технических терминов можно говорить очень долго. Как пример:
ПС: По поводу «строки» вспоминается древняя переводная книга по редактору Multiedit. Автор перевода очень страдал от смешивания терминов string и line и в своем переводе в качестве line использовал слово «полоска». Во вступлении он объяснил и развернуто обосновал такой выбор, но, несмотря на это, при чтении взгляд непрерывно «спотыкался» о подобные вещи.
Насчет неудачных устоявшихся русских переводных технических терминов можно говорить очень долго. Как пример:
- «Поток» — это stream, thread, или, может, вообще flow?
- «Строка» — это string или line?
ПС: По поводу «строки» вспоминается древняя переводная книга по редактору Multiedit. Автор перевода очень страдал от смешивания терминов string и line и в своем переводе в качестве line использовал слово «полоска». Во вступлении он объяснил и развернуто обосновал такой выбор, но, несмотря на это, при чтении взгляд непрерывно «спотыкался» о подобные вещи.
+1
А flip-flop как переведёте?
0
Отличная статья!
Я тоже не вполне понимаю, зачем писать на ардуине и подобных «оболочках».
Это же хобби, то есть интересен сам процесс разработки, а не только и не столько результат :-)
Я тоже не вполне понимаю, зачем писать на ардуине и подобных «оболочках».
Это же хобби, то есть интересен сам процесс разработки, а не только и не столько результат :-)
0
Есть такая фишка как «порог вхождения». Сколько %% ардуинщиков захотят/смогут вникнуть даже в столь подробную статью?
0
Порог вхождения не такой высокий как кажется. Поморгать лампочками и так сойдет, а сделать что-то более или менее разумное — все равно придется даташиты читать.
Я вообще не вполне понимаю, кто такие ардуинщики? :-) С одной стороны, пишут на С, что в современном мире приравнивается чуть ли не к ядерной физике, с другой стороны, не могут даташит прочитать…
Я вообще не вполне понимаю, кто такие ардуинщики? :-) С одной стороны, пишут на С, что в современном мире приравнивается чуть ли не к ядерной физике, с другой стороны, не могут даташит прочитать…
0
Знаете, это звучит почти оскорбительно: «Сколько ардуинщиков осилят прочесть небольшую техническую статью с иллюстрациями?» :) Хотя немалая доля истины в этом вопросе имеется, к сожалению…
0
Зря вы на Ардуину и оболочку. Гениальная штука, порог вхождения нулевой, да и сама IDE вполне годная для мелочей (я вот не могу себе позволить поставить слонопотама Atmel Studio на рабочий ноутбук).
Все зависит от человека и его интереса. Кто-то ограничится Ардуиной (точнее, Atmega328p), кто-то поймет, что маловато и надо посмотреть вокруг. И здесь, к сожалению, случается пропасть — тот же ST Visual Desktop ну совсем не располагает радостно в себя погрузиться.
Все зависит от человека и его интереса. Кто-то ограничится Ардуиной (точнее, Atmega328p), кто-то поймет, что маловато и надо посмотреть вокруг. И здесь, к сожалению, случается пропасть — тот же ST Visual Desktop ну совсем не располагает радостно в себя погрузиться.
+1
Против ардуинного IDE я вообще ничего не имею. Вполне работоспособная. Порог вхождения все-таки не совсем нулевой. Это только программистам так кажется. :-) Да и программистам надо понимать про ножки, регистры, мапинг на память и т.п. — это все то, что в современном программировании считается слишком низким уровнем, чтобы об этом знать.
Я баловался с IAR-ом. В рамках бесплатных ограничений мне хватало. Ну или можно поискать какие-то средства…
тот же ST Visual Desktop ну совсем не располагает радостно в себя погрузиться.
Я баловался с IAR-ом. В рамках бесплатных ограничений мне хватало. Ну или можно поискать какие-то средства…
0
При упоминании фраз вида "использовать регистры" я представлял использование библиотечных дефайнов. Но вот непосредственно самому дефайнить адреса — такой уровень хардкора я еще не встречал.
0
Я в прошлой статье писал, почему для STM32 мне кажется правильным дефайнить адреса (там еще комментаторы обсуждали это, помнится). Конкретно в моем случае — потому что есть модуль под STM32 для Arduino IDE, он построен на Maple и у него библиотечные дефайны отличаются от STM-овских. Я делал библиотеку для любителей, я не знаю, чем они пользуются, мне было проще напрямую писать по адресам для совместимости.
0
UFO just landed and posted this here
Среда называется ST Visual Develop. Начинающим могу дать напутствие: весьма глючный инструмент, про удобство молчу. При создании workspace и project сразу — падает, по крайней мере, у меня. Сначала пустой workspace, сохранить, потом добавить в него проект. Не всегда правильно собирает проект после изменений, иногда требуется rebuild all. Еще были какие-то баги с st link, не помню точно какие. Использую STM8 исключительно ради фич (двухтактные выходы с deadtime и fault и другое), поскольку разработка под них в винегрете из STVD и COSMIC — боль, особенно для меня, весьма так себе программиста. Наработок кода достаточно мало, например не удалось найти буфферизированный вывод в uart (может плохо искал), пришлось написать самому. Порта FreeRTOS нет, вообще с осами все очень плохо у STM8, есть OSA, запустил, работает но грустно и невкусно. Кроме того, были проблемы с дохлыми STM8S003F3P6 из коробки, поэтому моя вера в них пошатнулась. Для них пилят поддержку Arduino, может даже что-то выйдет из этого путное. Однако свободного C++ для STM8 нет, может и не будет.
+2
Картинка Pin Definitions для Blue Pill с ошибочкой. У порта PB5 должен быть не T2C2, а T3C2.
+1
слейва («раба»)
Это все таки корректнее называть не рабством, а «режимом ведомого».
+2
Определение LAT_pulse — потенциальный источник проблем. Там 2 оператора в define без блока. В результате конструкция if (...) LAT_pulse(); приведет к неожиданному выполнению только одного оператора из 2х. Используйте do {код} while(0) в таких случаях. А лучше inline функции
0
Небольшой «плач Ярославны» общего назначения… Чем вызвана «всеобщая» любовь к начинающимся с символа подчеркивания именам (вроде _SPI2_(address)) в собственном коде? Просто «бунтарство» какое-то, поскольку стандарты языков C и C++ осуждают и даже запрещают такую практику?
0
UFO just landed and posted this here
Как управлять фазой PWM сигнала на STM32?
Например надо эмулировать сигнал с инкрементального энкодера.
0
Only those users with full accounts are able to leave comments. Log in, please.
Читаем даташиты 2: SPI на STM32; ШИМ, таймеры и прерывания на STM8