Was ist der Funktionsunterschied zwischen IOC und EXT Interrupt auf einem PIC? Ich verwende derzeit einen PIC12F1822, und abgesehen von der zusätzlichen Überprüfungsebene, die Sie mit IOC zu tun haben (dh welcher Pin den Interrupt verursacht hat), sind die beiden identisch.
Was ist der praktische Unterschied, wenn überhaupt? Wann würden Sie entweder das eine oder das andere verwenden?
quelle
Der Interrupt bei Änderung gilt im Allgemeinen für ein halbes Byte E / A, wobei die externen Interrupts im Allgemeinen für einzelne Bits gelten. Wie Sie bereits sagten, müssen Sie im IOC ISR herausfinden, welches Bit (oder welche Bits) sich geändert hat.
Das IOC ist auch darüber hinaus etwas schwieriger zu bedienen. Es ist unbedingt erforderlich, den Port kurz vor dem Aktivieren des Interrupts zu lesen, und noch wichtiger, den Port innerhalb des ISR zu lesen! Wenn Sie ein sich langsam änderndes Signal haben und glauben, Sie könnten ein Flag innerhalb des ISR setzen und später außerhalb des ISR lesen, denken Sie noch einmal darüber nach! Das Lesen des Ports (oder eines beliebigen Bits am Port, wenn ich mich richtig erinnere) setzt den Latch am Komparator zurück, der den Interrupt auslöst. Wenn Sie es nicht innerhalb des ISR löschen, wird es sofort neu ausgelöst, wenn Sie den ISR verlassen. Wenn Sie daran denken, dies zu tun, ist alles gut, aber wenn Sie vergessen und glauben, dass Sie den Port lesen können, wenn Sie dazu kommen, werden Sie ein bisschen frustriert, bis Sie daran denken, das Lesen im ISR durchzuführen.
quelle