Перерва при зміні, як правило, для половини байтів вводу / виводу, де зовнішні переривання, як правило, для окремих біт. Як ви вже говорили, одне, що вам потрібно зробити в ISR МОК, - це з’ясувати, який біт (або біти) змінився.
МОК також трохи жорсткіший у використанні, навіть поза цим. Обов’язково слід прочитати порт незабаром, перш ніж дозволити переривання, а ще важливіше - ПРОЧИТАТИ ПОРТ у секторі ISR! Якщо у вас є сигнал, що змінюється повільно, і ви думаєте, що ви можете встановити прапор всередині ISR і зробити читання пізніше, поза межами ISR, подумайте ще раз! Читання порту (або будь-якого біта на порту, якщо я правильно пам'ятаю), скидає засувку на компараторі, що запускає переривання. Якщо ви не очистите його всередині ISR, він негайно повториться, коли ви вийдете з ISR. Якщо ви пам’ятаєте, що це робите, це все добре, але якщо ви забудете і думаєте, що можете прочитати порт, коли дістанетесь до нього, ви будете трохи засмучені, поки не згадаєте зробити прочитане в ISR.