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.
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...
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.
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...
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?
> 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.
...
;-) .. 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. ...
man kann aber auch Interrupts abschalten, die man eigentlich braucht, und dann hier ein Thread starten...
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.
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...
Das abgespeckte DB ist wahrscheinlich für Marketing-Strategen, die können mit dem vollständigen sowiso nix anfangen... ;-) ...
die brauchen doch nur die erste Seite (vielleicht noch die 2. wegen der Bilder...)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.