avatar
FIFO_LENGTH — это длина буфера, которую нужно задефайнить в заголовке.
Предлагаю тебе внести в fifo_t количество элементов в этому буфере :)
Можно использовать класс и один из чего методов будет количеством записей.

если мы укажем к примеру 5 байт в первом вызове, то мы запишем 4 байта полезных данных
Если ты пишешь на Си, то можно сделать кучу функций «fifo_put_int», «fifo_put_char» итп. Если на C++, то можно перегрузить fifo_put для работы с нужным типом данных, можно сделать шаблон fifo_putв котором вызывать внутреннюю fifo_put c sizeof(T) в качестве размера.

Еще, буферы с count — не потокобезопасны. Если одни поток (прерывания) будут писать, а другой (задача) будет читать, то это все нужно объявлять как volatile и блокировать прерывания на время обращений к count.

В качестве альтернативы можно обойтись без count, используя только head, tail запас в один байт :)
avatar
Аналогично. Лишь бы у вас была переменная, которая соответствовала бы скорости работы шаговика. Преобразование задания скорости в период переключения обмоток шаговика — это уже задача преобразователя. Но тут встает проблема — зависимость между процентным значением скорости и абсолютным значением периода переключения — обратная, то бишь — гиперболическая.
Один из простых методов преобразования одной переменной в другое — метод линеаризации. Про него будет моя сегодняшняя статья.
avatar
А возможно данный метод «прикрутить» к шаговому двигателю? То есть, я могу расчитать по основным характеристикам двигателя его максимальную частоту вращения, максимальное ускорение. Соответсвенно как может быть выглядить код управления шаговым двигатемем по интенсивности?
avatar
Идея отличная.
avatar
С Альтиум работаю почти два года, если есть вопросы, могу также ответить.
avatar
Обычно стоит, но когда нужно избавиться от синфазной помехи в каком-то медленном и мега-чувствительном аналоге, можно и резистор в землю поставить. Такое я пару раз видел в аудио ЦАПах, там рекомендовали ставить бусинки в землю. Естественно, падение на этом резисторе не должно превышать неких разумных пределов, обычно 0.3 вольта.
avatar
хм, а разве не нужно избегать сопротивления в цепи «земли»?
avatar
Думаю, штука популярная будет, поэтому и поставки не заставят себя ждать :)
avatar
Интересно когда начнут напрямую поставлять. Хотел бы применить для своего wi-fi радио.
avatar
Извиняюсь, с первого разу не въехал. Да и не сразу рассмотрел что подача импульсов в порядке чередования «DBCA».
avatar
аналогично, резистора хвататет с 0 и понятно :)
но совет с tie хороший
avatar
Так куда уже полушаговее =) Приглядитесь к коду…
avatar
Если честно, то из первой картинки совсем не понятно, что подается на вход системы и что снимается с выхода. А вообще, ТАУ — великая вещь.
avatar
Для шагового двигателя будет лучшим полушаговый режим.
методы шагания при данном подключении
avatar
Вот здесь описан триггерный метод подавления дребезга.
но без форсирования.
tqfp.org/rln_electro/zaschita-ot-drebezga-mehanicheskogo-enkodera.html
avatar
Столкнулся на днях с китайским дешевым энкодером (нечеткое начальное и конечное состояние контактов + дребезги). Пробовал программировать и по таблице переходов и по прерываниям — результаты отрицательные. Хотя видел устройство где именно он отлично работает. Выход нашел вот такой — настроил прерывание по таймеру на 1 Мгц(меньше дает пропуски) и в нем ловил в момент щелчка только одно самое быстрое и устойчивое переключение контакта 2>0<1. Метод работает прекрасно, но для него нужно прерывание по таймеру, что не везде применимо.
avatar
Ха, действительно похоже. Поотрывать бы что-то тем, кто схемы так рисует…
avatar
Спасибо за статью. Эту схему включения успешно используют в ноутбуках. Участок схемы питания ноутбукаНапример
На схеме на AD_DOCK_IN подается напряжение от внешнего зарядного устройства для силовых цепей ноутбука(дежурные цепи подключены отдельно)
avatar
Редактирую в sony vegas, эффекты — after effects
avatar
А в каком видео редакторе обрабатывается видео?