Ксения (13.06.2019 23:01, просмотров: 365) ответил Dingo на При этом вы не обозначили, ни сколько входов вам требуется отслеживать, ни сколько энкодеров. Хотя бы в минимальной версии.
Возможно, есть и другой выход - где-то видела алгоритм обслуживания энкодера с использованием не двух прерываний (от каждой линии), а только от одной из них, тогда как вторая линия проверяется в процедуре обработки прерывания от первой. Если это так, то на 16 прерываниях можно было бы установить не 8, а 16 энкодеров, что решило бы мою проблему с запасом.
Я же прежде имела дело лишь с аппаратной поддержкой энкодеров, где обе линии используются симметрично, а программными заинтересовалась только тогда, когда обнаружила, что аппаратной поддержки мне не хватает.
В интернете по этому поводу пишут многое, но там же в комментариях кто-то заявляет о допущенных ошибках. Да и примеры в основном те, где оба контакта посажены на разные прерывания. Тогда как маркировка самих этих контактов (CLK и DT) намекает на то, достаточно прерываться при измении CLK по обоим фронтам, а DT только лишь читать, подобно тому, как работает SPI.
Известно ли вам или кому-то еще такие алгоритмы, где на каждый энкодер приходится лишь по одному прерыванию?