Forum: Mikrocontroller und Digitale Elektronik Externer Interrupt


von Joe T. (joe_t)


Angehängte Dateien:

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.

von Rahul D. (rahul)


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...

von Joe T. (joe_t)


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.

von Rahul D. (rahul)


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...

von Michael Dittrich (Gast)


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?

von Hannes L. (hannes)


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.

...

von Rahul D. (rahul)


Lesenswert?

.. oder löscht diese... (Bits in den Registern)

von Hannes L. (hannes)


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.

...

von Rahul D. (rahul)


Lesenswert?

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

von Michael Dittrich (Gast)


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.

von Rahul D. (rahul)


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...

von Hannes L. (hannes)


Lesenswert?

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

;-)

...

von Rahul D. (rahul)


Lesenswert?

die brauchen doch nur die erste Seite (vielleicht noch die 2. wegen der
Bilder...)

von Michael Dittrich (Gast)


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.

von Rahul (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.