Спасибо. Т.е. схема получается примерно как у матричной клавиатуры? Логика примерно такая: установили входы 597 как hi-z, зарядили с 595, перевели выходы 595 в hi-z, а входы 597 в open drain, считали. Правильно понимаю?
VT100, странно, копипастой из адресной строки вставлял. Вот ещё раз ссылка, вот схема (пдф). Если всё ранвно не откроется, то вот переход через гугл на вики робофорума.
Zero932084, норма реакции примерно 50мс, такую задержку при слепом тестировании скорее всего не услышишь. А вот jitter в 50мс не осознается, но мозг нагружает достаточно, чтобы на ЭЭГ было видно.
Рекомендую использовать конечные автоматы (для них лучший фреймворк qpc). Так будет проще проектировать и отлаживать, особенно если логику придумывает другой человек или коллектив, а вы в основном программируете.
Что вы имеете в виду под "подружить"? Один раз собрать, а потом просто подключать к проекту без копирования исходников, или что-то иное? Не улавливают сути проблемы.
Армянское Радио, сейчас уже 7 версия, все стало сильно дружелюбнее и руками в makefile уже лезть не надо.
MechanicZelenyy, Только мне начинает казаться, что я понял ваши потребности, как сразу оказывается, что я ошибался. Плюс ниже вы говорите, что ардуинка для вас дорого. Ну тогда можно взять DB9 (COM) разъём, соединить на нём rx и tx и гнать в него поток, нехай порт слушают. Или сделать usb-кнопку из разъёма, чтобы эмулировать подключение-отключение устройства. Наиболее дешевые содержательные вещи, которые я могу придумать :)
Спасибо. Первую ссылку я как-то пропустил, вроде там достаточно идиоматично: используем предоставляемый системой софтварный таймерный пул, очередь сообщений и планировщик. Создаётся одна Task, в которой непрерывно (когда системный планировщик разрешит) опрашивается очередь и запускается извлеченное событие. Если КА или прерывание генерируют событие, то пихают в ту же очередь без всяких мьютексов.
Насколько я успел осмыслить документацию freertos, для обработки entry/exit и мгновенных callbacks transition мы их просто кладём в очередь, а для вызова отложенного transition callback немного сложнее: перед запуском vTaskStartScheduler создаём несколько таймеров, а когда надо обработать transition callback, перебираем созданные таймеры xTimerIsTimerActive, чтобы найти неактивный, и вызываем xTaskStart с callback вида "пихнуть в очередь transition callback". Чтобы запихнуть аргументы к callback, делаем примерно так.
У меня вопрос что является "выпуск программного обеспечекния": единицей продажи ПО не является, даже не программно-аппаратный комплекс. То есть если продукт использует внутри себя copyleft-ПО, например, GPLv3, его втроенное ПО подпадает под GPLv3, даже если пользователь не имеет возможности и обязанности обновлять или модифицировать прошивку?
Василий Банников, У меня главные непоняки с определение "выпуск программного продукта": не очень понятно, является ли необновляемое и не модифицированное конечным пользователем встроенное ПО собственно продуктом.
Я хотел использовать RIOT, у них LGPLv2.1. Вроде тоже надо.
kalapanga, Спасибо, что ткнули, просто последний раз, когда я узнавал цену, нельзя было купить "на развес", была только коробка или за 6, или за 10 килобаксов.
U235U235, спасибо, ответ выдаёт правильный, но уж очень скелетонизация и Радон на полноразмерном изображении дорогие по времени получаются. Я пока выделяю большой квадрат, откусываю у него верхнюю палочку и прогоняю через polyfit. За счёт длины огрехи бинаризации выравнивает.
U235U235, Да, это я не прав. Картинку добавил, задача простая: быстро автоматически выравнивать по осям для дальнейшей обработки после сканера без дополнительных реперов.
Orientation тоже работает попиксельно, я проверял, как и моменты. Преобразование Хафа лучше, о даёт сбой на малых углах 1, когда получается ступенька и линия обрывается. Для probabilistic Hough нужно подбирать параметр разрыва, что очень негибко.