mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Externer Interrupt


Autor: Joe Trentl (joe_t)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
momentan komme ich irgendwie mit den externen Interrupts nicht wirklich
zu recht... vielleicht überseh' ich ja was. (Bsp-Programm im Anhang)

Wenn ich nun mit einen Drähtchen den INT0 auf High setze (AVR_MT-128:
EXT1:PIN2 (5V) mit EXT1:PIN9 (INT0) verbinden) sollte ich doch die
Schleife verlassen und im Programm weitermachen!?

LG, Joe.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du wirst dich auch noch mit den INT-Registern auseinandersetzen
müssen... INT0 muß noch freiggeben werden.
Mit sei() werden einfach nur alle Interrupts freigegeben, die auch
zugelasssen sind...

Autor: Joe Trentl (joe_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah --- hat nun doch ein bissl gedauert, bis ich alles zusammen hatte
(+Flanken), aber immerhin... fg
Etwas gewöhnungsbedürftig sich von einem Eck zum anderen zuhangeln :o)


Vielen Dank, Joe.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
möchtest du wirklich alle Interrupts zur gleichen Zeit eingeschaltet
haben?
Dann hättest du u.a. das Problem, dass du dauernd im UDRI-Interrupt
festhängen würdest, da dieser Interrupt erzeugt wird, sobald kein
Zeichen mehr im UART-Sendepuffer liegt...

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie schaltet man nur bestimmte Interrupts an?
Ich habe so meine Probleme mit flankengesteuerten externen Interrupts,
irgendwie will das nicht so richtig, ein Kumpel von mir hat unabhängig
von mir die gleichen Erfahrungen gemacht. Hat da jemand einen Tipp?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und wie schaltet man nur bestimmte Interrupts an?

Man liest (und versteht!) das Datenblatt und setzt dann die
betreffenden Bits in den betreffenden I/O-Registern.

...

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. oder löscht diese... (Bits in den Registern)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
;-)

.. aber nur die (Bits in den Registern), deren Interrupts ausgeschaltet
werden sollen.

Es soll aber auch I/O-Register geben, mit denen man keine Interrupts
schalten kann, weil sie andere Funktionen erfüllen. Das (vollständige!)
Datenblatt könnte Aufklärung bringen.

Achja, zu jedem aktivierten Interrupt muss auch ein Sprung in die
Interrupt-Vektortabelle eingetragen sein, der zu einer ISR
(Interrupt-Service-Routine) führt. Dort wird dann der Job erledigt.

...

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man kann aber auch Interrupts abschalten, die man eigentlich braucht,
und dann hier ein Thread starten...

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tipp mit dem Datenblatt, da wäre ich selbst nicht drauf
gekommen! Interrupt-Vektoren sind gesetzt, Interrupts sind aktiviert,
die Flags für die Art der Auslösung sind gesetzt, realisiert im Prinzip
nach dem Beispiel aus dem Tutorial.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fragt man sich, wieso Atmel (und die anderen Firmen) immer so ein
Aufwand mit den Datenblättern treibt, wenn keiner reinguckt...
Wieso Atmel immer zwei zu jedem Chip "verteilen" muß, ist mir
allerdings auch nicht klar...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das abgespeckte DB ist wahrscheinlich für Marketing-Strategen, die
können mit dem vollständigen sowiso nix anfangen...

;-)

...

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die brauchen doch nur die erste Seite (vielleicht noch die 2. wegen der
Bilder...)

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mal ganz ehrlich, wirklich leichte Lektüre sind die Datenblätter
nicht, außerdem muß man erstmal ewig suchen, bis man einige Dinge
gefunden hat.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nö!
Im Acrobat Reader ist links doch ein schönes Inhaltsverzeichnis zu
sehen. Da braucht man nur den entsprechenden Punkt auszuwählen.
Wenn ich etwas auf dem Bildschirm nicht lesen kann (weil ich lieber
Papier in den Händen halte), drucke ich mir die entsprechende Passage
aus. Die Blätter kann ich dann auch im Bus lesen, und mir Notizen darin
machen.

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.