Перейти к содержанию

Eddy_Em

Members
  • Постов

    151
  • Зарегистрирован

  • Посещение

Весь контент Eddy_Em

  1. Ужас какой! Тогда только через одно место. Ставим в прерывании флаг, а в бесконечном цикле его обрабатываем…
  2. Все можно сделать весьма элегантно в фоне: таймер пинает DMA, а DMA передает данные по SPI…
  3. На работу я обычно беру заказ на сумму тысяч от 50. А для себя покупаю на али. Но там сейчас тоже очень дорого: от полтинника. Ждем, пока кончится "кремниевый кризис", а пока довольствуемся старыми запасами.
  4. На данный момент они дорогие ужасно из-за "кризиса": STM8S003 по 45 рублей аж!
  5. Дождитесь окончания "кремниевой чумы", и опять появятся 20-ногие STM32F030 по 30 рублей. Еще дешевле — STM8S103, например (а то и вообще STM8S003). Можно поискать среди китайских: скажем, недавно я покупал ch552g по 25р за штучку (у них безкристалльный USB, но вот косяк с оперативкой: всего лишь 1кБ, да еще и в двух разных банках), но не помню по документации, есть ли там encoder mode.
  6. Скриптуется студентом за один вечер. Синхронизацию можно хоть через сокеты сделать. Один компьютер выбираем мастером - он будет отправлять текущие координаты мыши и нажатия клавиш слейву. А слейв при помощи xdotool все это воспроизводить (мастер, кстати, тоже посредством xdotool может координаты получать). В итоге можно обойтись элементарными баш-скриптами, не написав ни одной строчки кода!!! Ну или на С пару страниц кода набросать. Если вместо иксов на компьютере используется вяленый, будет немного сложней. А еще более вменяемый вариант: запустить все это дело на виртуалках и из виртуального устройства мыши ими управлять. Правда, это - все равно идиотизм. Потому что не существует такой задачи, где нужно было бы одно и то же натыкивать мышью в разных компьютерах. И даже для набора однотипных текстов на разных компьютеров ничего невозможно придумать.
  7. Это делают боты. Простейший бот пишется на баше и curl'ом отправляет нужные данные на нужный порт нужного адреса. В общем, как я понял, пост - попытка вырезать гланды через задницу. Правильней было бы не начинать высказывать завиральные идеи, которые большинство посчитает идиотизмом, а изложить свою проблему. Тогда вам и предложат достойное решение.
  8. У меня вообще воображение закончилось. Подскажите хоть один вариант, когда такое может понадобиться! А сделать такое несложно: берем мышь на RS-232, подключаем Tx к Rx N преобразователей USB<>RS-232 и радуемся. Теоретически, такой изврат можно и с PS/2 сделать. Вот только для виртуального щелкания клавиатурой и мышей давным-давно придумали софт. Взять тот же xdotool к примеру.
  9. Да понятно все. Я не об этом речь вел, а об экономической целесообразности (1МК для этих целей стоит 20-30р, а сколько будет стоить дискретная логика) и эргономике (сколько места будет дискретная логика занимать).
  10. Да ладно! Кто ж не знает дешевые плохонькие термодатчики DS18B20 и DS18S20? Их единственное достоинство - возможность на одну шину посадить уйму датчиков (абдуринщики в ответ на бессмысленность использования этой дряни именно к этому и апеллируют, ведь в случае с NTC или PTC "мультиплексор нужен"). P.S. А для расчета CRC на компьютере есть уйма библиотек ([url=https://www.libcrc.org/]например[/url]), так что потуги самому считать ее смахивают на попытку самостоятельно выполнять БПФ, когда есть fftw3! P.P.S. И да, про "расчет фоном в любом МК" не надо мне тут! В большинстве МК всего лишь одно ядро, так что нормальную многозадачность на них построить невозможно! А псевдомногозадачность средствами какой-нибудь ртоси — адов суррогат, который еще и кучу накладных расходов требует (я уж молчу, что минимум 1 таймер на эту дрянь надо использовать).
  11. STM32F072, например! В случае же с CAN, для работы с нижним уровнем ресурсы ядра МК практически не тратятся даже на STM32F042. И контрольная сумма считается "в фоне", не мешая основным процессам. И вообще, советую почитать даташит на STM32: во многих из них есть блок аппаратного расчета CRC! Для 32 бит данных подсчет выполняется за четыре такта AHB. Коэффициенты полинома CRC программируются через регистры. Позор, что сказать!
  12. Ну это как взять рояль, шарахнуть по нему кувалдой, а потом "играть", кидая в него молотки! Представьте, что вам кафельную плитку абы как наляпали: "а чë, и так сойдет: держится же!". Вот так же и с абдуриноподходом. Нужно все-таки себя держать в человеческих рамках, не опускаясь до стадии животного!!! Окружающий мир должен быть гармоничным, а не "тяп-ляп и в продакшн"! И я не представляю себе вообще ситуаций когда блокирующая пауза аж в 1мс может "не помешать всему остальному". В случае же с DS18 абдуринщики почти на секунду блокируют ядро МК! За такое надо брать кувалду и бить по тупой башке!!1111
  13. Еще раз повторяю: если в сообщении из 1кБ ожидается больше одной ошибки, то явно разработчик сделал что-то не так: неправильно выбрал "физику", неправильно выбрал протокол или скорость. Вот управляю телескопом на очень дорогой монтировке 10-micron по RS-232. Там вообще никаких контрольных сумм нет, т.к. они нафиг не нужны на RS-232 при шнурке до 10м длиной на скорости 115200 бод. Аналогично с куполом Baader, который в 8 миллионов рублей обошелся: там тоже никаких дурацких проверок, просто RS-232 с текстовым протоколом на 9600 бод. 6-метровым телескопом управляют SEWовские приводы на обычной CAN-шине (к тому же перегруженной, у нас в планах выбросить CAN и сделать все на обычном ethernet, оставив CAN лишь на коротких кусках к приводам). Понятно, что на CAN "настоящая" CRC считается. Но она считается аппаратно, т.е. ресурсы ядра МК при этом не используются на всякую ерунду. А то эдак дойдем до того, что крутой электронщик будет с DS18x20 работать в блокирующем режиме ногодрыгом с delay'ями, как это безмозглые абдуринщики делают, а не используя аппаратные ресурсы МК.
  14. Круто! Но смысл? Ведь сейчас собрать что-то на дискретной логике выйдет дороже, чем на МК! Возьмите любой 20-30рублевый МК, у которого есть хоть один таймер, умеющий работать с энкодером. Один вечер программирования, и у вас та же схема, но компактней и дешевле.
  15. А какая связь между ПЛК и МК? Нужно на ПЛК эмулировать МК? Это - дипломная работа что ли? Крутовато как-то для дипломной. Если же просто нужно на МК разработать простенький блок, то в чем тогда проблема? Даташит с RM в руки — и вперед!
  16. Из всего, с чем я работаю, нет ни одной (в т.ч. промышленной) железяки, которая если и считала бы контрольную сумму, то иначе, чем простым XOR всех байтов! Потому что это - ненужная блажь!!! Если линия настолько зашумлена, что даже CAN там затыкается, то нужно думать о другом типе физики и протокола. Скажем, передавать каждый байт дважды: байт и его инверсию. Ну и т.п. Мне достаточно того, что этот недоЯП выдуман мелкомягкими и весь оброс проприетарщиной. Если человек пишет на до-диезе, то в 99.99999% случаев это - вендузятник. Фу, какая гадость!..
  17. Ну, здрассьте! У CAN ведь физика — 485! Не зря же CAN используется в автопроме. Вы если не в теме, хоть не позорьтесь!
  18. А мне жаль тех, кто не по делу тратит ресурсы МК!!! Если уж так хочется контрольную сумму посчитать, достаточно поXORить все данные в сообщении. В случае сбоя это будет понятно. А если у вас линия так замусорена, что в каждом дайте ошибка, вы явно что-то не так делаете!!!
  19. Вот же делать нечего!!!1111 Если мне нужно работать в "шумных" условиях, я выбираю CAN. Если же все ОК, то просто передаю данные и не парюсь.
  20. ну да, ну да… А внимательно почитать - не? Абсолютно же одно и то же (если я правильно рассуждаю о логике до-диеза). А почему бы с компьютерной стороны не написать на том же С или хотя бы С++? Зачем эту мелкомягкую отрыжку использовать? И еще вопрос: зачем такой сложный табличный способ использовать для расчета КС, если можно просто uint16_t CRC = 0; for(int i = 0; i < len; ++i) CRC ^= mesg[i]; ?
  21. Вы бы конкретизировали, сколько двигателей с энкодерами на одно устройство. Скажем, STM32F072 потянет три шаговика с энкодерами (у него как раз есть три таймера, способных работать с энкодером + три таймера для генерирования импульсов STEP + еще останутся таймеры для служебных нужд). А если вдруг нужно больше, то придется либо значительно более жирный МК искать, либо собирать устройство с мастером и подчиненными, а здесь уже значительно больше трудозатрат… А если нужно только 1 двигатель с энкодером, то и STM32F042 (возможно, даже двадцатиногого) за глаза…
  22. 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 для каких-то вещей (в октаве-то по умолчанию даблы, а если даже какую-то переменную явно ограничить интом, то она все равно так и норовит чуть что ее в дабл перевести). Пишу проверочный кусочек кода на С (с худшими вариантами, а то и вовсе с перебором), собираю, смотрю выхлоп.
  23. Дык, а в чем проблема? Делаем подтяжку так, чтобы в нормальном состоянии мосфет был открыт (кстати, для коммутации "плюса" понадобится либо "драйвер" верхнего ключа, либо еще один слабенький n-канальный мосфет, т.к. закрыть p-канальный можно будет лишь напряжением выше где-то так 10В). Вот только выключить такую штуку не получится: как только вы подадите +3.3В на затвор n-канального мосфета с ноги GPIO одноплатника, у вас пропадет питание. Одноплатник выключится и внезапно питание снова появится. Я это к чему: чтобы включить схему, нужно будет еще одну кнопочку вывести и подождать, пока одноплатник загрузится и сам активирует контакт (ну, можно туда и одновибратор засунуть, который эти 30 секунд "подождет" за вас). Когда я домашнюю файлопомойку-торрентокачалку на "кубитраке" собирал, мне тоже понадобилось в случае необходимости отключать питание нагрузки. А еще нужно было температуры опасных мест мониторить и кулеры включать (за месяцы эксплуатации, правда, ни один кулер еще так и не включился). Поэтому сделал эдакую управлялку. А снаружи коробки, где все это разместил, повесил пищалку и две кнопки (вкл/выкл). В вашем случае монитор питания можно соорудить на каком-нибудь дешевом МК L-серии с питанием от 3-вольтовой батарейки.
  24. Ужас какой!.. Но для ардуинщиков китайцы даже такое придумали! На али я встречал "модуль" из мосфета и двух резисторов (подтяжка затвора и защита питателя затвора). Во, что нашел. Возможно, есть и попроще... И лучше, наверное, таки не нуль обрубать, а плюс.
×
×
  • Создать...