mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externer Interrupt Beschaltung


Autor: Christoph M. (hooch244)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

habe eine kurze Frage zur Beschaltung des Interruptpins[INT0] eines
ATMEGA 16. Arbeite gerade mit einem Sensor der mir ein Signal an einen 
74HTC14(Schmitt-Trigger invertiert) liefert. Wenn ich diese Schaltung 
separat prüfe bekomme ich an einem Ausgang des 7414 0V bzw. 5V. Wenn ich 
diesen Ausgang direkt auf den ATMEGA 16 Interruptpin gebe bekomme ich 
nur eine Spannung von 0V bzw. 1,9V. Diese 1,9V reichen nicht um einen 
Interrupt auszulösen. Kann mir bitte jemand weiterhelfen und die interne 
Beschaltung dieses PINs erklären.

Vielen Dank

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das deutet darauf hin, dass Du im Programm PD2 (INT0) als Ausgang 
initialisiert hast und 0 ausgibst.

Die interne Beschaltung steht zwar im Datenblatt, aber schau lieber erst 
in Deinem Programm nach.

Autor: Christoph M. (hooch244)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank für die schnelle Antwort.
Das ist richtig. Hab PD2 als Ausgang definiert. Im Datenblatt steht aber 
auch dass ich PD2 als Ausgang definieren muss wenn ich den externen 
Interrupt INT0 nutzen möchte.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph M. schrieb:
> Vielen dank für die schnelle Antwort.
> Das ist richtig. Hab PD2 als Ausgang definiert. Im Datenblatt steht aber
> auch dass ich PD2 als Ausgang definieren muss wenn ich den externen
> Interrupt INT0 nutzen möchte.

Wo genau?

Das ist unlogisch.
Ein Interrupt ist immer etwas, was von aussen an den µC herangetragen 
wird. Der Pin muss daher auf Input geschaltet sein. Bei manchen 
Funktionalitäten macht das die Hardware selbsttätig (zb wenn man den 
UART Empfangsteil einschaltet). Aber auf Ausgang schalten ist auf keinen 
Fall logisch. Wenn du so etwas liest, solltest du sofort stutzig werden. 
Ist es ein englisches Datenblatt, dann noch mal genau lesen, ob man sich 
nicht vertan hat und irgendwo ein not übersehen hat.

Autor: Christoph M. (hooch244)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,danke. Hat funktioniert. Werde das Datenblatt nochmal genauer lesen 
müssen.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich richtig erinnere, steht im Datenblatt, dass sich der INT0 
als software-generierte Interruptquelle nutzen lässt, wenn man ihn als 
Ausgang initialisiert.  Das heißt natürlich nicht, dass man es so machen 
muss.  Und natürlich kann der Pin dann nicht mit einem anderen Ausgang 
verbunden werden.

Scheint mir eh eine Funktionalität zu sein, für die es außerhalb 
akademischer Tempel keine sinnvolle Anwendung gibt.  Ein cli, gefolgt 
von einem (r)call zur Interruptroutine, machen dasselbe.

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.