Interrupt vermehrung

Gast #96801
Wir suchen ein Bauteil, das folgende Aufgabe hätte:

8 oder 16 Eingänge, die einfach durchgeschliffen werden.
Wenn sich einer der Eingänge ändert, soll ein Interruptausgang
ansprechen.
Die Idee ist, mehrere Eingänge, aber nur einen Interrupt zu verwenden.

Schöne Grüße
Gast
Hallo Peter,

einfach alle Eingänge auf ein 8fach- (oder 16-fach ) OR geben und
dessen Ausgang auf einen interruptfähigen Pin. Ist auch kaskadierbar
für noch mehr Eingänge.

MfG, Khani
Gast
JA aber:

Da würde ich nur erkennen wenn der 1. Eingang eingeschaltet wird.
Wenn ein zweiter dazukommt ist der int ja schon eins - also so ganz
würde das nicht funktionieren

Gruß Peter
Gast
Die neueren AVR's können separat pro Port ein Pin-Change Interrupt
triggern. Also, PORTA = Input + Pin-Change ISR, in dessen ISR PORTA
lesen und an PORTB ausgeben.

Gruß Hagen
Gast
Alle Int-Sourcen via OR mit dem Interruptpin verbinden und zusätzlich
jede Source auf einen Port-Pin legen. Wenn dann ein Interrupt auftritt
guckt man einfach nach, welche(r) Pin(s) betroffen sind/ist. Damit
sollte es mit so gut wie jedem Prozessor gehen.
Gast
> meinst Du mega48/88(168 ? Die sind aber noch nicht lieferbar, oder?

Korrekt. Aber ATTiny15, ATTiny26, ATTiny28 teilweise, unterstützen den
schon. Der ATTiny26 hat Port A + B und wäre eventuell ideal.
Die neueren m48/88 wären idealer.

@OldBug: wenn ich die Frage richtig verstanden habe dann hilft deinen
Lösung eben nicht weiter. Wenn 1 Pin auf HIGH ist, und nun ein anderer
Pin seinen Level ändert dann wird in deiner Logik eben kein Interupt
mehr ausgelösst. Die Frage war wie man bei IRGENDEINE Ändrung an 8
verschiedenen Pins einen IQR auslösen kann.

Statt OR wird via XOR jeder Pin verschaltet. Der Ausgang der XOR
Gatterkette wird als Input für INT0/INT1 genommen. Das käme der Lösung
schon näher, aber auch nur näher. Denn wenn nun 2,4,6,8 Pins
gleichzeitig ihren Status ändern wird wiederum kein IRQ ausgelösst.

Gruß Hagen
Gast
Mit dem ATTiny15 könntest du zB. 5 Leitungen überwachen, + 1Pin als
Ausgang für den IRQ. Statt die 5 Leitungen durchzuschleifen, wird der
ATTiny15 einfach in Reihe zu den Leitungen angeschlossen.

Mit dem ATTiny26 wäre so 15 Leitungen möglich.

Gruß hagen
Gast
Es gibt aber doch auch Input-Schieberegister mit einem IRQ Ausgang. Du
legst an die Inputs des Shiftregister deine Leitungen dran und den IRQ
Ausgang an deinen AVR. Der Rest der Aufgabe/Leitungen der Shiftregister
interessieren dich dann garnicht mehr.

Gruß Hagen
Gast
Hi,

eine Moeglichkeit waere ein I/O Expander zunutzen PCF8574. Diesen gibt
es mit 8 oder 16 i/o's .... Dieses IC besitzt auch ein INT Pin , wenn
z.B. eine Taste gedrueckt wurde liest du das IC per I2C Bus aus.


Mfg

Dirk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.