Solche D-Flip-Flops dienen eigentlich nicht zur Verzögerung. Sie sind dazu da, asynchrone Signale für synchrone Schaltungen zu konditionieren. In synchronen Schaltungen, und eigentlich alle komplexen Schaltungen in einem Chip sind heutzutage synchron, dürfen sich Signale nicht zu jedem Zeitpunkt ändern. Bei den linken beiden FFs sieht man das deutlicher. Da findet man den Signalnamen "pin_sync", der das andeuted. An den rechten findet man ebenfalls Signalnamen. Wenn man den inneren Aufbau des Prozessors genauer kennt, könnte man Vermutungen über deren Funktion anstellen.
Der Pin-Change Interrupt ist eigentlich ein suboptimales Konzept. Wenn der Eintritt, muß der Interrupthandler erstmal feststellen, welcher Pin da gezuckt hat. Bis das passiert, kann schon etwas Zeit ins Land gegangen sein und der Pin ist möglicherweise längst wieder in den Anfangszustand zurückgegangen. Nun weiß der Interrupthandler nicht, wer den Interrupt ausgelöst hat. Oder es hat sich inzwischen ein anderer Pin geändert. Sinn macht er eigentlich nur, wenn man ein Bündel von Signalen überwachen will. So z.B. wenn man mehrere Bausteine mit Interrupt-Ausgängen hat, die aktiv bleiben, bis sie der µC aktiv zurück setzt. Das entspricht in etwa dem Konzept von Shared Interrupts auf dem PCI-Bus.
Bei einem einfachen Interrupt ist klar was los war, selbst wenn der Auslöser ein relativ kurzer Puls (wegen der linken Flipflops mindesten ein Takt lang) war.
MfG Klebwax
Lesezeichen