Jaka jest różnica w funkcji między IOC a EXT Interrupt na PIC? Obecnie używam PIC12F1822 i oprócz dodatkowej warstwy sprawdzania masz do czynienia z IOC (tj. Który pin spowodował przerwanie) oba są identyczne.
Jaka jest praktyczna różnica, jeśli w ogóle? Kiedy użyjesz jednego z nich?
źródło
Przerwanie przy zmianie dotyczy zwykle połowy bajtu We / Wy, przy czym przerwania zewnętrzne są zwykle dla poszczególnych bitów. Jak już powiedziałeś, jedną rzeczą, którą musisz zrobić w IOC ISR, jest ustalenie, który bit (lub bity) zmienił się.
MKOl jest również nieco trudniejszy w użyciu, nawet poza tym. Konieczne jest przeczytanie portu wkrótce przed umożliwieniem przerwania, a jeszcze ważniejsze, aby ODCZYTAĆ PORT wewnątrz ISR! Jeśli masz powolny sygnał i myślisz, że możesz ustawić flagę wewnątrz ISR i poczytać później, poza ISR, pomyśl jeszcze raz! Odczyt portu (lub dowolnego fragmentu portu, jeśli dobrze pamiętam), resetuje zatrzask komparatora, który wyzwala przerwanie. Jeśli nie wyczyścisz go w ISR, natychmiast uruchomi się ponownie po wyjściu z ISR. Jeśli pamiętasz, aby to zrobić, wszystko jest w porządku, ale jeśli zapomnisz i pomyślisz, że możesz przeczytać port, gdy się do niego zbliżysz, będziesz trochę sfrustrowany, dopóki nie pamiętasz, aby przeczytać w ISR.
źródło