Хорошо бы конечно платформу определить, у всех по разному бывает.
Есть такой вариант
4 ноги из порта имеют индивидуальные прерывания и еще есть 3 прерывания на группу по 4 ноги. То есть прерывания на каждой ноге из первых 4 вызовут каждый свой обработчик, а прерывание любой ноги из группы в остальных вызовет единое прерывание для группы.
Иногда прерывание вызывается для всего порта, и так далее...
на физическом уровне это сделано так: ножки от 4 портов идут на логическое или, а оно уже на детектор прерывания.
В любом случае что вызывало прерывание определяется по флагам, а то очень накладно иметь вектор прерывания для каждой ноги.
В вашем случае еще надо рассмотреть такой вариант, подтянутая резистором ножка не поддается влиянию наводок из воздуха (кстати сильным наводкам поддается и из воздуха), но если вы потрогаете ее пальцем она изменит свое состояние, не на долго, но может изменить. Так же поступает ваш разъем, он же имеет емкость, и когда вы его втыкаете он создает ток, и меняет положение ноги и вызывает прерывание.
Схемотехнически от этого трудно избавится, если вообще возможно.
|