Interupsi pada perubahan umumnya untuk setengah byte I / O, di mana interupsi eksternal umumnya untuk bit individu. Seperti yang sudah Anda katakan, satu hal yang perlu Anda lakukan dalam IOC ISR adalah mencari tahu bit (atau bit) mana yang berubah.
IOC juga sedikit lebih sulit untuk digunakan, bahkan lebih dari itu. Sangat penting untuk membaca port segera sebelum mengaktifkan interupsi, dan bahkan lebih penting untuk MEMBACA PELABUHAN di dalam ISR! Jika Anda memiliki sinyal yang berubah lambat, dan berpikir Anda dapat mengatur bendera di dalam ISR dan membaca nanti, di luar ISR, pikirkan lagi! Pembacaan port (atau bit pada port, jika saya ingat dengan benar), me-reset kait pada komparator yang memicu interupsi. Jika Anda tidak menghapusnya di dalam ISR, itu akan segera retrigger ketika Anda keluar dari ISR. Jika Anda ingat untuk melakukan ini, itu semua baik, tetapi jika Anda lupa dan berpikir Anda dapat membaca port ketika Anda melakukannya, Anda akan sedikit frustrasi sampai Anda ingat untuk melakukan membaca di ISR.