mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4 externe Interrupts möglich?


Autor: Jürgen Hems (misteret)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leute,

ich wollte an einen ATmega16 zwei Lichtschranken anstecken.

Und zwar einmal soll durch die High Flanken gezählt werden, und falls 
ich mal andere Lichtschranken verwende vielleicht auch mal mit den Low 
Flanken.

Dazu würde ich dann 4 Anschlüsse verwenden, sodass beides möglich wäre.


Geht das, dass ich das Ganze an PORTA anschließe?
Also sozusagen mit 4 externen Interrupts?

Eigentlich sind ja PD3 für INT1 und PD2 für INT0 vergeben.
Ich weiß grad nicht weiter, denn ich bräuchte ja für zwei Lichtschranken 
im High Activ Modus 2 Pins und für 2 Lichtschranken im Low Activ Modus 2 
Pins, an denen ich auch einen externen Interrupt auslösen kann...

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es Lichtschranken gibt, die nicht gleichzeitig aktiv sind kannst du 
die ja an einen INT anschließen und parallel noch an einen weiteren 
Eingang um zu unterscheiden welcher es nun war.
Oder du pollst einfach.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muss es der ATMEga16 sein?

der ATmega168 kann (fast) jeden IO-Pin als Interrupt verwenden...

sonnst müsstest du alle 4 Signale auf ein OR führen und auf 4 IO Pins, 
und dann in Software prüfen welcher denn nun wirklich was von dir will

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm den ATmega164P, der ist pinkompatibel zum veralteten ATmega16 und 
kann auf jedem Pin interrupten.


Peter

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als vierten Interrupteingang den Input Capture verwenden.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder du nimmst einen Jumper, der die Software dahingehend beeinflusst, 
ob rising oder falling edge den interrupt auslöst.

Autor: Jürgen Hems (misteret)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mh na eigentlich kann ich ja auch sagen:

if (Pin auf High) {}

und dann sag ich dem Burschen einfach, was ich von ihm will.


Dachte nur, mit interrupts ist es etwas eleganter..


Aber danke für die Tips mit dem Mega168!

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.