Меня попросили создать мою собственную процедуру, которая будет сканировать клавиатуру, но только с использованием PORTC и с использованием RC0-3, мне нужно только вернуть 4 значения, то есть 1,2,4,5, которые, если я прав, находятся в расположение 2x2 на клавиатуре 4x4. Клавиатура, которую я использую, представляет собой клавиатуру 4x4, подключенную к PORTC, мне просто интересно, как вы это сделаете? Поскольку меня этому не учили, тем не менее, это большая часть работы. Было бы неплохо, если бы я получил не решение, а скорее объяснение, подталкивающее меня в правильном направлении, чтобы я мог сделать это сам. Микроконтроллеры PIC : Сканируйте входы на клавиатуре 4x4, используя только порт C RC0-RC3 в C, это в основном этот вопрос, но ответы там на самом деле не помогли, поэтому я подумал, что попробую задать этот вопрос сам :) Любая помощь будет оценена!
PIC в C - создание собственной процедуры сканирования клавиатуры с использованием RC0-3
Ответы (1)
В предыдущем вопросе, который вы связали, «1,2,4,5» относятся к легендам клавиатуры, которые могут быть любыми и часто не имеют никакого отношения к значениям битов, которые вы получаете обратно. Вы записываете бит «1» на каждый выход (строку) по очереди (или «0» для инвертированной логики) и ищете старшие (или младшие, если инвертированная логика) биты на входах столбца. Вы беспокоитесь о том, что написано на клавишах впоследствии, используя таблицу поиска. Независимо от того, есть ли у вас ключевая матрица 2x2 или 4x4, это не имеет значения, если только вы не хотите встроенное решение, а не циклическое.
Если бы клавиатура действительно была 2x2, ей не нужно было бы быть матрицей, проводка и кодирование были бы проще с 4 битами, используемыми в качестве входов вместо 2 выходов и 2 входов для управления и чтения матрицы.
Если вы не перемонтируете клавиатуру 4x4, ваше подмножество 2x2, вероятно, будет использовать RC0,1 и RC4,5.
if ((portc & 0x08) != 0) printf ("High");
И это весь код, который вы получите!
- person Weather Vane; 30.12.2014