Arduino: Interrupts: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(→Videos) |
||
Zeile 53: | Zeile 53: | ||
== Videos == | == Videos == | ||
{{#ev:youtube|https://www.youtube.com/watch?v=ZTRiICx1ykM | 400 | | YouTube: Interrupts am Arduino einsetzten |frame}} | {{#ev:youtube|https://www.youtube.com/watch?v=ZTRiICx1ykM | 400 | | YouTube: Interrupts am Arduino einsetzten |frame}} | ||
<iframe key="panopto" path="/Panopto/Pages/Embed.aspx?id=e268228b-7439-4642-92a0-af5200c05eb8&autoplay=false&offerviewer=true&showtitle=true&showbrand=true&captions=false&interactivity=all" height="405" width="720" style="border: 1px solid #464646;" allowfullscreen allow="autoplay"></iframe> | |||
<br> | |||
Video 2: Einbindung des Micro Servos SG90 | |||
== Literatur == | == Literatur == |
Version vom 19. November 2022, 14:34 Uhr
Autor: Prof. Dr.-Ing. Schneider
Einleitung
Bei einem Interrupt wird durch ein Ereignis, beispielsweise ein Signal von außen, das Hauptprogramm gestoppt und ein anderes Programm ausgeführt. Das externe Signal kann zum Beispiel ein kurzer Puls von einem sich drehenden Magneten sein. Damit jedes Signal des sich drehenden Magneten auch gezählt wird, kann damit ein Interrupt ausgelöst werden, der einen Zähler um 1 erhöht.
Beispiel
Die Funktion alarm
wird bei ansteigendem Signal an Pin 2 ausgeführt.
include attachInterrupt(0, alarm, RISING);
void alarm()
{
// Anweisungen
}
detachInterrupt() Schaltet den Interrupt aus. detachInterrupt(InterruptNummer) InterruptNummer: 0 oder 1 (bei Arduino-Standardboards)
Quelle: [1]
Tipp: Eine Variable sollte als volatile
deklariert werden, wenn sie von irgendwo anders geändert werden kann außer in dem Codeteil, in dem sie auftaucht. Beispiele dafür sind Threads, die parallel ausgeführt werden. Im Arduino kann das nur bei Interrupts vorkommen, in sogennanten Interrupt Service Routinen.
Nützliche Befehle
Befehl | Funktion |
---|---|
attachInterrupt(InterruptNummer, Funktion, Mode) |
Diese Funktion löst mittels Signal an einem definierten digitalen Port einen Interrupt aus, der eine wählbare Programmfunktion aufruft. |
InterruptNummer |
Die Arduino-Standardboards (Uno, Nano, Mini, other 328-based) können zwei Interrupts erfassen 0: Pin 2 |
Parameter Funktion |
Durch das Erkennen des Eingangssignals an den erwähnten Ports kann eine auszuführende Funktion angegeben werden. |
Parameter Mode |
Dieser Parameter gibt an, bei welcher Signaländerung ein Interrupt ausgelöst werden soll.
|
detachInterrupt(InterruptNummer) |
Schaltet den Interrupt aus.
|
detachInterrupt(InterruptNummer) |
Schaltet den Interrupt aus.
|
Videos
Video 2: Einbindung des Micro Servos SG90
Literatur
- Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL
→ zurück zum Hauptartikel: Informatikpraktikum 1: Arduino Praxiseinstieg