Простите, я не очень понял, то ли осмеян был, то ли одобрен.
Мой предполагаемый путь - от 3 до 8 кнопок, подключенных через 74hc165. Соответственно, опрос состояния клавиатуры - это считывание байта и элементарные работы по определению установленности бита. Байт считывается побитово, то есть 8 операций на чтение. Троекратный опрос - 24 операции. Для повышения надежности считывания - 40 операций. Зная, что я реализую "железный" антидребезг, и все дребезги убегут в землю, я не пложу опросы.
Добавляя дополнительные кнопочки свыше 8 (до 16) удлинняю опрос вдвое, читая два байта. Если *вдруг* затеется больше кнопок (а пока не представляю, зачем, в моем проекте), то лучше будет реализовать работу с ps/2 клавиатурой, там кнопок с запасом
А насчет надежности... что может быть надежней кондюка на землю?
ЗЫ. Я переживаю не за длину кода, а за количество команд на чтение, множащихся при повторных чтениях, считай, за такты. код-то не намного длиннее. На один переход, сравнение и счетчик
А регистры - от небесконечности выходов на Ардуине. 3 на 595-ю (ЖК), 5 на шаговые двигатели (LN297+29
, вот и осталось 5 "ножек" на ввод. А нужны концевики, возможно, термометр, возможно, зуммер.