Encoder EncoderPro EncPro
Это издержки разработки блока в редакторе. Когда я закрываю вывод входа или настройку каким то условием, а в коде есть на него ссылка как на переменную, то при компиляции в это место вставляется пустота. Можно конечно весь код на мелкие кусочки попилить и к каждой скобке приставить условие компиляции, но это большой гимор. Поэтому я и придумал такую фишку (костыль).
Для менюшных энкодеров такой не подойдет? Испытывался на UNO.
Это с какой стати такой вывод?
.neangel писал(а): ↑10.10.2021{, 14:39}У меня к вам есть серьёзные претензии к тому принципу как вы делаете блоки энкодера.
И обязательно вам покажу в чём ваша Dryundel серьёзная ошибка.
Есть мелочи которые можно простить но есть и мелочи которые прощать нельзя.
Надеюсь когда всё вам поясню вы сделаете правильный вывод и ваши блоки перейдут на другой уровень развития.
Вы же всё умеете их делать но подзатыльник вам не помешает.
здесь ... viewtopic.php?f=74&t=7580#p106373
Нельзя вписывать в блок номера пинов для подключения энкодера.
Первое.
Это заставляет припаивать 2 сопротивления подтяжки к каждому из энкодеров.
А если энкодеров 3 то сопротивлений уже шесть!
Вы мешаете таким блоком выбирать программную подтяжку на пинах и заставляете людей брать паяльник.
Удавить за это мало.
Второе.
В жизни не всё зависит от скорости функций.
У китайцев есть и физически корявые энкодеры которые я лечу так (см. ниже рисунок).
И в итого.
На плате нет лишних сопротивлений.
А если попался плохой энкодер то вылечить его можно по интернету программно.
А не брать в руки паяльник выпаивать и выкидывать энкодер
Надеюсь разницу понимаете?
.
Правильно понимаете. Как правило этого бывает достаточно.
Чтобы кроме этого детского лепетаDryundel писал(а): ↑13.10.2021{, 10:32}Следует понимать, что когда Вы применяете стандартный блок входа(пина), используется функция digitalWrite() - чтение состояния пина, которая выполняется более чем за 50 тактов процессора, а это весьма значительное для быстродействия время. И пока ваш пин считывается, будет упущен момент считывания второго пина. И это даже без учета времени цикла вашего конкретного проекта, ибо digitalWrite() не сможет выполняться чаще чем один раз за цикл. От этого и проблемы с пропусками.
Мало того, Вы еще предлагаете к этому медленному процессу добавить задержку в виде таймера, и тем самым усугубить проблему.
А это да... ему наверное трудно без этого
Вы забываете, что энкодер можно не только руками крутить. Его так же используют для контроля оборотов двигателя. Поэтому тоже считаю, что не стоит ухудшать блок, только ради того, чтобы он работал с плохими энкодерами.
neangel, к сожалению конкретно Вам, мне вряд ли удастся помочь. Для того что бы осознать этот "Детский лепет", требуется приложить усилие и понять элементарные вещи. Вы же не желаете этого делать. Возможно это просто возраст. I am very sorry.
Вот ещё две версии винрара.
Как же так, Ingwar.Ingwar писал(а): ↑13.10.2021{, 23:04}neangel, считаю, что Вы не правы.
Попробую объяснить.
В любом нормальном устройстве, где используется энкодер, есть элементы для формирования правильных фронтов или на крайний случай RC фильтры. Про оптические энкодеры можно даже не говорить.
И если Вы пытаетесь использовать полуфабрикат (по другому описанные Вами изделия назвать трудно, причем самого невысокого качества) в качестве полноценного узла, а он такой нехороший (по вашей версии блок нехороший) не хочет работать, то при чем тут программа...?
Если вы этого не делали … предположу что это уже прописано в применяемой библиотеке.Dryundel писал(а): ↑13.10.2021{, 10:32}Единственное что можно сделать, так это добавить в блок использование аппаратно-программной подтяжки пинов контроллера. Хотя и в этом особого смысла я не вижу. Подтяжка эта высокоомная и не поможет в фильтрации дребезга. А если есть RC фильтр, то и "железная" подтяжка уже предусматривается по умолчанию
Не совсем понятно - программно "лечите" другие (быстрые) блоки?
Согласен трудно когда с пол темы пытаешься влезть во всю.
Открываются.