demiurg301 писал(а):Завод кнопок на прерывание бывает важен например для кнопки аварийного выключения или для немедленной реакции на человека( секундомер например встроеный в устройство).
мда... какую бы систему вы не делали, завод кнопки на прерывание с целью обеспечения быстрого аварийного отключения СОВЕРШЕННО БЕСМЫСЛЕННО. кнопку нажимает человек, а его мышечная реакция даже у самых-самых тренированных людей редко бывает лучше 0,1 секунды, т.е. 100 миллисекунд. если аварийное отключение должно что-то там опасное остановить, например, пресс или циркулярную пилу, то надо учесть, что быстродействие электромеханических исполнительных устройств не может превысить 0,1 сек, т.е. те же самые 100 миллисекунд. итого даже в самом супер-идеальном случае быстрее, чем 200 миллисекунд никакая аварийная кнопка не сработает. и ваши потуги уменьшить время реакции на нажатие кнопки на жалкие 10-20 миллисекунд - просто пустая трата сил.
demiurg301 писал(а):Делать задержку ( а они бывают очень большие - в зависимости от массы кнопок, степени защиты , времени работы) после выставки "1" в матрице - накладно по времени цикла.
ничуть не так. задержку надо делать после съема значений со всех кнопок. будь их хоть 100, алгоритм прежний:
1. запоминаем состояние всех кнопок
2. делаем задержку
3. сравниваем текущее состояние кнопок с запомненным
4. если оба состояния равны - дребезг кончился, значение можно анализировать.
задержка всегда будет определяться длительностью дребезга, который для обычных кнопок длится не более 20 миллисекунд.
demiurg301 писал(а):ничего ужасного в задействовании одного 8 битного таймера не увидел. Зато точно не сработает от 50Гц наводки или жира с пальцев - а время опрос существенно уменьшается.
а ничего ужасного и нет. просто бесполезно, имхо.
битва с дураками проиграна, победители торжествуют. слава победителям!