mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt vermehrung


Autor: Peter AUT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter AUT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hagen:

meinst Du mega48/88(168 ? Die sind aber noch nicht lieferbar, oder?

Stefan

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, stimmt... so weit hatte ich das gar nicht gesponnen g

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.