Jeffrey Cross
Jeffrey Cross

How-To: Arduino unterbricht

Wenn Sie in einer einfachen Arduino-Skizze basierend auf dem Status eines digitalen Eingangspins Maßnahmen ergreifen möchten, prüfen Sie den Zustand des Pins wiederholt, bis eine bestimmte Bedingung erfüllt ist. Wenn Ihre Skizzen jedoch immer komplexer werden, werden Sie feststellen, dass dies nicht immer der beste Weg ist. EngBlaze hat ein paar Anleitungen zur Verwendung von Interrupts veröffentlicht, damit Sie Code asynchron in Arduino-Skizze ausführen können. Hier ist die Analogie, die sie verwenden, um den Unterschied zu veranschaulichen:

Stellen Sie sich vor, Sie sitzen auf Ihrer Couch, genießen ein frostiges Gebräu und sehen nach einem langen Tag einen Film. Das leben ist gut. Es gibt nur ein Problem: Sie warten auf das Eintreffen eines unglaublich wichtigen Pakets und benötigen es so schnell wie möglich. Wenn Sie ein normales AVR-Programm oder eine Arduino-Skizze waren, müssen Sie Ihren Film wiederholt anhalten, aufstehen und die Mailbox alle 5 Minuten überprüfen, um sich zu vergewissern, dass Sie wissen, wann das Paket dort war.

Stellen Sie sich stattdessen vor, dass das Paket an Fedex oder UPS mit Zustellbestätigung gesendet wurde. Nun geht der Zusteller zu Ihrer Haustür und klingelt, sobald er ankommt. Das ist dein Interrupt-Auslöser. Sobald Sie den Auslöser gefunden haben, können Sie Ihren Film anhalten und mit dem Paket fertig werden. Das ist Ihre Interrupt-Service-Routine. Sobald Sie fertig sind, können Sie den Film dort abholen, wo Sie aufgehört haben, ohne zusätzliche Zeit zu verschwenden. Das ist die Kraft von Interrupts.

Der erste Leitfaden behandelt Hardware-Interrupts wie Schalter und der zweite Abschnitt bespricht Timer-Interrupts, so dass Sie nicht wiederholt prüfen müssen, ob bei der Ausführung von Code in einem bestimmten Intervall eine bestimmte Zeit vergangen ist. Die Handbücher enthalten Codebeispiele, die Ihnen einen schnellen Einstieg in Ihr eigenes Interrupt-gesteuertes Arduino-Projekt ermöglichen. [via Reddit]

Aktie

Leave A Comment