-
-
Hallo Frank,
Kjion hat die Funktion eines Interruptausgangs bereits richtig beschrieben.
Um einmal allgemein die Funktion von Interrupts, egal ob diese von I²C-Bus-ICs,
FIFO-Bausteinen oder was auch immer kommen, zu beschreiben:
Ein Interrupt bleibt immer solange bestehen, bis dieser zurückgesetzt wird.
Bei I²C-Bus-Portexpandern, wie den PCF8574 oder MAX7311, geschiet
das durch ein Ansprechen (Adressieren) des Bausteins.
Bei I²C-Bus-Portexpander geht die Interruptleitung auf low, sobald sich
der Pegel an mind. einem der Ports ändert.
Und, um zum Interrupt bei Überlauf zu kommen:
Was soll das für einen Sinn machen ?
1. Wenn es zu einem Überlauf kommt, ist es bei "normalen" Zählern
meist schon zu spät, und man "verliert" Impulse.
2. Da bei I2C-CNT8 der Zähler beim Abfragen nicht zurückgesetzt wird,
mach es hier noch weniger Sinn.
3. Man benötigt den Zählerwert sicher nicht nur, wenn dieser überläuft. :-)
Man muß bedenken, wenn man einen Zähler zurücksetzen würde,
welcher passiv funzt, wie der I2C-CNT8, läuft man gefahr Impulse zu verlieren, da man zum Zürücksetzen über den I²C-Bus wieder Zeit benötigen würde.
Einen Aktiven Zähler am I²C-Bus wollte ich nicht erstellen. Da hier der
benötigte PIC-Controller um einiges teuere kommen würde.
Das ding müsste schließlich auch programmiert werden, was sich natürlich
auch wieder am Preis bemerkbar macht.
Übrigens ist beim I²C-Bus die Interruptleitung so vorgesehen, daß man
mehrere Bausteine an eine Interruptleitung hängt.
Geht die Leitung auf Low, fragt man alle Bausteine ab solange der Interrupt besteht:
Bsp: 5 PCF8574:
for i=0 ... 4
{
states[i]=pcf.in(i);
if port.get(IntPort) break; //wenn Interrupt beendet, Schleife verlassen.
}
@alle
Und zum I²C-Bus selbst:
Bitte nennt den I²C-Bus bitte auch I²C-Bus.
Es ist ein Bus, kein "I²C-Port" und auch keine "I²C-Schnittstelle".
MfG André H.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen