Цитата(Zhekas @ Aug 28 2018, 14:41)

. . . Может быть дело в малой величине выходного сигнала, поскольку я подаю сигнал на АЦП прямо с матрицы? . . .
Кроме амплитуды надо учитывать работу входных цепей АЦП, а именно УВХ (если оно реализовано) или входную емкость АЦП.
Если сигнал с матрицы маломощный, то при высокой частоте выборок матрица может не успевать "накачивать" УВХ или емкость по входу.
Посмотрите настройки АЦП Вашего контроллера, есть ли там УВХ. Если есть - должна быть настройка "времени захвата". Можно попробовать
проверить работу на мин и макс. значениях (хотя это может и не помочь). Более реально - буферизировать выход матрицы
(если в этом проблема).
--
У меня практ. опыта по этому девайсу нет. Лежит извлеченная из старого сканера матрица, ждет своей "реинкарнации"

ps
Цитата(Zhekas @ Aug 24 2018, 12:10)

. . .
PORTB |= (0 << SH) | (1 << FM) | (1 << ICG);
. . .
Судя по оператору, бит разряда с номером SH должен быть сбошен в 0. В правой части так и будет.
но если он (SH) до этого был в 1, то после |= так ней и останется.
---
далее я код не проверял, проанализируйте сами.