Вот как выглядел пересчёт
Код:
KEY FUNC U1 D1 U2 D2
-------------------------------------------------------
1 PRE 0.1 130 1.18 1530
2 ATT 0.1 130 1.88 2437
3 ANF 0.1 130 2.45 3176
4 DNR 1.03 1335 1.18 1530
5 NB 1.03 1335 1.88 2437
6 SLPE 1.03 1335 2.45 3176
7 PWR 1.84 2385 1.18 1530
8 TONE 1.84 2385 1.88 2437
9 MONI 1.84 2385 2.45 3176
* A/B 2.45 3176 1.18 1530
0 A=B 2.45 3176 1.88 2437
# SPLIT 2.45 3176 2.45 3176
P1 FIL- 2.86 3707 1.18 1530
P2 FIL+ 2.86 3707 1.88 2437
P3 MODE- 2.86 3707 2.45 3176
P4 MODE+ 2.86 3707 2.90 3759
D = U * 4096 / 3.16
В коде было допустимое отклонение значения 120. Табличку можно найти в файле adc.c версии 2.0
В чём уверен, так это в том, что при включении нежелательной команды, напряжения соответствуют нежелательной команде. Контроллер - штука упрямая.
И если по таблице не прослеживается близость напряжений "нажатой" и "появившейся" команды, то копать нужно в обратную от контроллера сторону.
Проглядел! Вместо DNR может включиться SPLIT при подскоке второго напряжения с 1.18 до 2.45
Уже легче. Подключиться понадежнее осциллографом и жать кнопку - глядишь и проскочит визуально (или триггером ловить) Без приборов, можно сразу поменять местами детали между первым и вторым входами (операционник, резистор, конденсатор блокировочный) промыть лишний раз и посмотреть, поменялась ли ошибка.