Ich bin grad am Durcharbeiten/Lernen des AtmegaTutorials und hab eine Frage zu Interrupts. Hier ist das Beispiel mit zwei Interrupts aufgelistet: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Interrupts LED Ein bzw. Ausschalten. Meine Frage dazu haben 8bit-uCs zwei "freie" Interrupts, die ich selber programmieren kann? 1 0x000 RESET Reset bzw. Einschalten der Stromversorgung 2 0x001 INT0 Externer Interrupt 0 3 0x002 INT1 Externer Interrupt 1 4 0x003 TIMER2_COMP Timer/Counter2 Compare Match In der Liste hier auch aus dem Tutorial ist von zwei externen Interrupts die Rede, die anderen haben alle andere Namen. Also kann ich sagen, dass diese Klasse von uCs nur zwei "freie" Interrupts haben udn die anderen alle für andere Aufgaben bestimmt sind?
Ja. genau so. Naja. Es gibt dann noch Pinchange Interrupts, die sind eigentlich fast gleich. Sind aber nicht bei allen Modellen erhaeltlich.
Nein. Die externen Interrupts sind genauso fest definiert, wie alle anderen auch. Die heissen externe Interrupts, weil sie von Signalen an einem Eingangspin, also von extern, ausgelöst werden. Oliver
Ok, danke. Da steht auch "... und je einen Taster an PD2 (INT0) und PD3 (INT1)..." ich konnte im Quelltext des Beispiels nicht erkennen, dass die Interrupts Int0 und Int1 PD2 und PD3 zugeordnet werden. Heisst das, dass es nicht ausschließlich zwei Interrupts gibt, sondern die Interrupts auch fest an die Kontakte PD2 und PD3 geknüpft sind?
Interrupteur schrieb: > sondern die Interrupts > auch fest an die Kontakte PD2 und PD3 geknüpft sind? nein, die sind frei wählbar, nur in der standard-einstellung gehört pd2 zu int0.
Hi >nein, die sind frei wählbar, nur in der standard-einstellung gehört pd2 >zu int0. ????? MfG Spess
Interrupteur schrieb: > Ok, danke. > > Da steht auch > > "... und je einen Taster an PD2 (INT0) und PD3 (INT1)..." > > ich konnte im Quelltext des Beispiels nicht erkennen, dass die > Interrupts Int0 und Int1 PD2 und PD3 zugeordnet werden. Bei diesem µC ist diese Zuordnung fix. Diese und noch viele weitere Informationen finden sich IMMER im Datenblatt des fraglichen µC. Dort ist letztendlich deine einzig wahre Informationsquelle in der alles steht. Was dort nicht drinnen steht, existiert auch nicht im Umfeld deines µC. Dein Datenblatt ist deine Bibel. Ohne es kannst du auf lange Sicht deinen µC nicht programmieren. Also ist gut, wenn du frühzeitig lernst mit dem Datenblatt umzugehen und zu arbeiten.
Was ist zum Zahlen von Signalen besser geeignet? Wenn ich zählen möchte, wie oft jemand einen Taster gedrückt hat und es aufsummieren will, ist es günstiger, dies über einen sog. Interrupt zu machen oder eine Endlosschleife in einem Programm, die ständig den Register z.B. PIND abfragt und wenn jmd. nen Taster drückt und das entsprechende Bit von PIND den Wert 1 hat (für gedrückt), dann summiert?
Mechmet schrieb: > Register z.B. PIND abfragt und wenn jmd. nen Taster drückt und das > entsprechende Bit von PIND den Wert 1 hat (für gedrückt), dann summiert? Völlig ungeeignet. Du musst/willst Flanken zählen und nicht wie lange eine Taste gedrückt ist. Tasten und externe Interrupts sind ein Dauerbrenner hier im Forum. Die Antwort ist immer die gleiche: Zum Auswerten einer Taste braucht man keinen externen Interrupt. Ganz im Gegenteil. Durch Tastenprellen sind Interrupts eine schlechte Lösung. Einzige Ausnahme: Wenn die Taste den µC aus einem sleep herausholen muss. Aber auch dann weckt der Interrupt den µC nur auf. Die eigentliche Auswertung geschieht wieder so wie hier: Entprellung Aber was hat das jetzt mit der Zurdnung von INT0 zu PD2 zu tun?
Was ist mit Impulsen von Lampen, z.B. wenn ich eine Lichtschranke hab und ein Fototransistor einen Pegel High/Low annehmen kann und ich die High-Werte zählen will, muss ich das Tastenentprellen auch berücksichtigen?Oder ist Entprellung ausschließlich bei mechanischen Bauteilen zu beachten?
Mechmet schrieb: > Was ist mit Impulsen von Lampen, z.B. wenn ich eine Lichtschranke hab > und ein Fototransistor einen Pegel High/Low annehmen kann und ich die > High-Werte zählen will, muss ich das Tastenentprellen auch > berücksichtigen? Wenn du Prellen grundsätzlich ausschliessen kannst, musst du nicht. Es schadet aber auch nicht, sofern dir die Entprellung kein Zeitproblem erzeugt. > Oder ist Entprellung ausschließlich bei mechanischen > Bauteilen zu beachten? Es gibt auch prellfreie Taster. Aber gerade bei Taster ist eine Softwareentprellung kein Thema. Sie verzögert das Erkennen eines Tastendrucks um ein paar Millisekunden. Das ist aber zu kurz, als das ein Mensch das wahrnehmen könnte und auf jeden Fall viel kürzer als je ein Mensch eine Taste drücken und wieder loslassen könnte. Ein paar Millisekunden sind aber für einen µC eine lange Zeit, in der er den entsprechenden Eingang ein paar mal abscannen kann, selbst dann wenn sich das im Hintergrund in einem Timerinterrupt abspielt.
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.