Eddy_Em
Members-
Постов
151 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент Eddy_Em
-
Ужас какой! Тогда только через одно место. Ставим в прерывании флаг, а в бесконечном цикле его обрабатываем…
-
Все можно сделать весьма элегантно в фоне: таймер пинает DMA, а DMA передает данные по SPI…
-
На работу я обычно беру заказ на сумму тысяч от 50. А для себя покупаю на али. Но там сейчас тоже очень дорого: от полтинника. Ждем, пока кончится "кремниевый кризис", а пока довольствуемся старыми запасами.
-
На данный момент они дорогие ужасно из-за "кризиса": STM8S003 по 45 рублей аж!
-
Дождитесь окончания "кремниевой чумы", и опять появятся 20-ногие STM32F030 по 30 рублей. Еще дешевле — STM8S103, например (а то и вообще STM8S003). Можно поискать среди китайских: скажем, недавно я покупал ch552g по 25р за штучку (у них безкристалльный USB, но вот косяк с оперативкой: всего лишь 1кБ, да еще и в двух разных банках), но не помню по документации, есть ли там encoder mode.
-
Скриптуется студентом за один вечер. Синхронизацию можно хоть через сокеты сделать. Один компьютер выбираем мастером - он будет отправлять текущие координаты мыши и нажатия клавиш слейву. А слейв при помощи xdotool все это воспроизводить (мастер, кстати, тоже посредством xdotool может координаты получать). В итоге можно обойтись элементарными баш-скриптами, не написав ни одной строчки кода!!! Ну или на С пару страниц кода набросать. Если вместо иксов на компьютере используется вяленый, будет немного сложней. А еще более вменяемый вариант: запустить все это дело на виртуалках и из виртуального устройства мыши ими управлять. Правда, это - все равно идиотизм. Потому что не существует такой задачи, где нужно было бы одно и то же натыкивать мышью в разных компьютерах. И даже для набора однотипных текстов на разных компьютеров ничего невозможно придумать.
-
Это делают боты. Простейший бот пишется на баше и curl'ом отправляет нужные данные на нужный порт нужного адреса. В общем, как я понял, пост - попытка вырезать гланды через задницу. Правильней было бы не начинать высказывать завиральные идеи, которые большинство посчитает идиотизмом, а изложить свою проблему. Тогда вам и предложат достойное решение.
-
У меня вообще воображение закончилось. Подскажите хоть один вариант, когда такое может понадобиться! А сделать такое несложно: берем мышь на RS-232, подключаем Tx к Rx N преобразователей USB<>RS-232 и радуемся. Теоретически, такой изврат можно и с PS/2 сделать. Вот только для виртуального щелкания клавиатурой и мышей давным-давно придумали софт. Взять тот же xdotool к примеру.
-
Да понятно все. Я не об этом речь вел, а об экономической целесообразности (1МК для этих целей стоит 20-30р, а сколько будет стоить дискретная логика) и эргономике (сколько места будет дискретная логика занимать).
-
Тогда уж на пускателях сразу =D
-
Да ладно! Кто ж не знает дешевые плохонькие термодатчики DS18B20 и DS18S20? Их единственное достоинство - возможность на одну шину посадить уйму датчиков (абдуринщики в ответ на бессмысленность использования этой дряни именно к этому и апеллируют, ведь в случае с NTC или PTC "мультиплексор нужен"). P.S. А для расчета CRC на компьютере есть уйма библиотек ([url=https://www.libcrc.org/]например[/url]), так что потуги самому считать ее смахивают на попытку самостоятельно выполнять БПФ, когда есть fftw3! P.P.S. И да, про "расчет фоном в любом МК" не надо мне тут! В большинстве МК всего лишь одно ядро, так что нормальную многозадачность на них построить невозможно! А псевдомногозадачность средствами какой-нибудь ртоси — адов суррогат, который еще и кучу накладных расходов требует (я уж молчу, что минимум 1 таймер на эту дрянь надо использовать).
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
STM32F072, например! В случае же с CAN, для работы с нижним уровнем ресурсы ядра МК практически не тратятся даже на STM32F042. И контрольная сумма считается "в фоне", не мешая основным процессам. И вообще, советую почитать даташит на STM32: во многих из них есть блок аппаратного расчета CRC! Для 32 бит данных подсчет выполняется за четыре такта AHB. Коэффициенты полинома CRC программируются через регистры. Позор, что сказать!
- 8 951 ответ
-
1
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Ну это как взять рояль, шарахнуть по нему кувалдой, а потом "играть", кидая в него молотки! Представьте, что вам кафельную плитку абы как наляпали: "а чë, и так сойдет: держится же!". Вот так же и с абдуриноподходом. Нужно все-таки себя держать в человеческих рамках, не опускаясь до стадии животного!!! Окружающий мир должен быть гармоничным, а не "тяп-ляп и в продакшн"! И я не представляю себе вообще ситуаций когда блокирующая пауза аж в 1мс может "не помешать всему остальному". В случае же с DS18 абдуринщики почти на секунду блокируют ядро МК! За такое надо брать кувалду и бить по тупой башке!!1111
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Еще раз повторяю: если в сообщении из 1кБ ожидается больше одной ошибки, то явно разработчик сделал что-то не так: неправильно выбрал "физику", неправильно выбрал протокол или скорость. Вот управляю телескопом на очень дорогой монтировке 10-micron по RS-232. Там вообще никаких контрольных сумм нет, т.к. они нафиг не нужны на RS-232 при шнурке до 10м длиной на скорости 115200 бод. Аналогично с куполом Baader, который в 8 миллионов рублей обошелся: там тоже никаких дурацких проверок, просто RS-232 с текстовым протоколом на 9600 бод. 6-метровым телескопом управляют SEWовские приводы на обычной CAN-шине (к тому же перегруженной, у нас в планах выбросить CAN и сделать все на обычном ethernet, оставив CAN лишь на коротких кусках к приводам). Понятно, что на CAN "настоящая" CRC считается. Но она считается аппаратно, т.е. ресурсы ядра МК при этом не используются на всякую ерунду. А то эдак дойдем до того, что крутой электронщик будет с DS18x20 работать в блокирующем режиме ногодрыгом с delay'ями, как это безмозглые абдуринщики делают, а не используя аппаратные ресурсы МК.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Круто! Но смысл? Ведь сейчас собрать что-то на дискретной логике выйдет дороже, чем на МК! Возьмите любой 20-30рублевый МК, у которого есть хоть один таймер, умеющий работать с энкодером. Один вечер программирования, и у вас та же схема, но компактней и дешевле.
-
А какая связь между ПЛК и МК? Нужно на ПЛК эмулировать МК? Это - дипломная работа что ли? Крутовато как-то для дипломной. Если же просто нужно на МК разработать простенький блок, то в чем тогда проблема? Даташит с RM в руки — и вперед!
-
Из всего, с чем я работаю, нет ни одной (в т.ч. промышленной) железяки, которая если и считала бы контрольную сумму, то иначе, чем простым XOR всех байтов! Потому что это - ненужная блажь!!! Если линия настолько зашумлена, что даже CAN там затыкается, то нужно думать о другом типе физики и протокола. Скажем, передавать каждый байт дважды: байт и его инверсию. Ну и т.п. Мне достаточно того, что этот недоЯП выдуман мелкомягкими и весь оброс проприетарщиной. Если человек пишет на до-диезе, то в 99.99999% случаев это - вендузятник. Фу, какая гадость!..
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Ну, здрассьте! У CAN ведь физика — 485! Не зря же CAN используется в автопроме. Вы если не в теме, хоть не позорьтесь!
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
А мне жаль тех, кто не по делу тратит ресурсы МК!!! Если уж так хочется контрольную сумму посчитать, достаточно поXORить все данные в сообщении. В случае сбоя это будет понятно. А если у вас линия так замусорена, что в каждом дайте ошибка, вы явно что-то не так делаете!!!
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Вот же делать нечего!!!1111 Если мне нужно работать в "шумных" условиях, я выбираю CAN. Если же все ОК, то просто передаю данные и не парюсь.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
ну да, ну да… А внимательно почитать - не? Абсолютно же одно и то же (если я правильно рассуждаю о логике до-диеза). А почему бы с компьютерной стороны не написать на том же С или хотя бы С++? Зачем эту мелкомягкую отрыжку использовать? И еще вопрос: зачем такой сложный табличный способ использовать для расчета КС, если можно просто uint16_t CRC = 0; for(int i = 0; i < len; ++i) CRC ^= mesg[i]; ?
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Вы бы конкретизировали, сколько двигателей с энкодерами на одно устройство. Скажем, STM32F072 потянет три шаговика с энкодерами (у него как раз есть три таймера, способных работать с энкодером + три таймера для генерирования импульсов STEP + еще останутся таймеры для служебных нужд). А если вдруг нужно больше, то придется либо значительно более жирный МК искать, либо собирать устройство с мастером и подчиненными, а здесь уже значительно больше трудозатрат… А если нужно только 1 двигатель с энкодером, то и STM32F042 (возможно, даже двадцатиногого) за глаза…
-
triple facepalm! Вот пример: cat 1.c #include <stdio.h> int main(){ int a = 1, b = 2; printf("without braces: %d - %d\n", !a & 1, !b & 1); printf("with braces: %d - %d\n", !(a & 1), !(b & 1)); return 0; } gcc 1.c && ./a.out without braces: 0 - 0 with braces: 0 - 1 Разница видна? И вообще, крайне советую спорные моменты отрабатывать сначала в консольке. Я многие алгоритмы для МК сначала моделирую в octave, но сразу их не переношу, если сомневаюсь, хватит ли мне, скажем, uint16_t для каких-то вещей (в октаве-то по умолчанию даблы, а если даже какую-то переменную явно ограничить интом, то она все равно так и норовит чуть что ее в дабл перевести). Пишу проверочный кусочек кода на С (с худшими вариантами, а то и вовсе с перебором), собираю, смотрю выхлоп.
- 8 951 ответ
-
- Микроконтроллер
- МК
-
(и ещё 2 )
C тегом:
-
Дык, а в чем проблема? Делаем подтяжку так, чтобы в нормальном состоянии мосфет был открыт (кстати, для коммутации "плюса" понадобится либо "драйвер" верхнего ключа, либо еще один слабенький n-канальный мосфет, т.к. закрыть p-канальный можно будет лишь напряжением выше где-то так 10В). Вот только выключить такую штуку не получится: как только вы подадите +3.3В на затвор n-канального мосфета с ноги GPIO одноплатника, у вас пропадет питание. Одноплатник выключится и внезапно питание снова появится. Я это к чему: чтобы включить схему, нужно будет еще одну кнопочку вывести и подождать, пока одноплатник загрузится и сам активирует контакт (ну, можно туда и одновибратор засунуть, который эти 30 секунд "подождет" за вас). Когда я домашнюю файлопомойку-торрентокачалку на "кубитраке" собирал, мне тоже понадобилось в случае необходимости отключать питание нагрузки. А еще нужно было температуры опасных мест мониторить и кулеры включать (за месяцы эксплуатации, правда, ни один кулер еще так и не включился). Поэтому сделал эдакую управлялку. А снаружи коробки, где все это разместил, повесил пищалку и две кнопки (вкл/выкл). В вашем случае монитор питания можно соорудить на каком-нибудь дешевом МК L-серии с питанием от 3-вольтовой батарейки.
-
Ужас какой!.. Но для ардуинщиков китайцы даже такое придумали! На али я встречал "модуль" из мосфета и двух резисторов (подтяжка затвора и защита питателя затвора). Во, что нашел. Возможно, есть и попроще... И лучше, наверное, таки не нуль обрубать, а плюс.