Вы хотите посмотреть на условие, когда они оба утверждены?Если это так, просто попробуйте их, если не оба утверждены, не беспокойтесь.если это прерывание и вы, вероятно, используете код на C?Даже если ассемблер просто пробует два или три раза, если после прерывания оба не подтверждены, тогда это была ложная сделка и игнорировать ее.
Если вы смотрите на них как на два отдельных события и беспокоитесь о том, сколько раз вы читалипорт, и они оба утверждены.Вы, вероятно, уже должны разделить чтение порта и обработку того, что вы нашли.Считайте порт, если бит 0, затем выполните вещи, если бит 1 (из сохраненного значения, а не повторного чтения порта), затем выполните вещи с битом 1.
Не существует такой вещи, как передовой опыт, кроме "doВаша системная инженерия "(потому что цели проектирования различны в разных отраслях, где используется похожее оборудование).Все эти проблемы и решения покрываются системной инженерией.Ваша системная инженерия скажет вам точно, каково поле для события, о котором вы беспокоитесь, и, зная свойства контроллера / процессора, вы знаете, как система прерываний реагирует, если используется, или какова ваша частота выполнения и выборки, чтобы знать, как свойства микроконтроллеровотносятся к рассматриваемому событию.Я готов поспорить, что выполняя и сохраняя два чтения быстро, затем говорю, что если в одном из этих чтений оба бита подтверждены, объявите, что событие произошло.У вас уже должна быть передискретизация входного сигнала на основе ожидаемого / разработанного сигнала, и в результате вы, вероятно, можете отбросить сэмплы, которые находятся на грани изменения состояния входов.