Inhaltsverzeichnis:
- Schritt 1: Interrupt-Handler
- Schritt 2: Periodisches Zeitintervall einstellen
- Schritt 3: Initialisierung unterbrechen
- Schritt 4: Wo Sie Ihren Code hinzufügen
Video: Arduino - Periodischer Interrupt - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
In diesem Instructable geht es um die Verwendung eines periodischen Interrupts für das Timing in Arduino-Programmen. Dies ist ein Schritt für einen angehenden Arduino-Programmierer, der weiß, dass der Arduino mehr kann, aber nicht genau weiß, wie er das erreichen soll.
Wenn es ein Leistungsproblem gibt, gehe ich davon aus, dass Sie eine oder mehrere delay()-Funktionen verwenden. Der Trick besteht darin, die delay()-Funktion(en) loszuwerden und einen Interrupt zu ersetzen. Die Funktion delay () zwingt den Arduino, nichts zu tun, während er auf den Abschluss von delay () wartet. Wenn Sie einen Interrupt verwenden, kann Ihr Programm andere Dinge tun, während es auf das Ende der Verzögerung wartet. Normalerweise gibt es eine große Menge ungenutzter Totzeit, die bei Verwendung von delay() für andere Dinge verwendet werden könnte. Die Verwendung eines Interrupts löst dieses Problem.
Schritt 1: Interrupt-Handler
1. Fügen Sie Ihrem Programm den Interrupt-Handler hinzu. Einfach kopieren und irgendwo über setup() einfügen;
const unsigned long TIMER0_COUNT = 500; // 500 ms Timer-Intervall
// TIMER0 Interrupt-Handler volatile bool time = false; ISR (TIMER0_COMPA_vect) { statischer unsigned long count = 0; if (++count > TIMER0_COUNT) {count = 0; Zeit = wahr; // die Zeit wird alle TIMER0_COUNT ms auf true gesetzt } // (die Zeit muss in der Hauptroutine gelöscht werden) }
Schritt 2: Periodisches Zeitintervall einstellen
2. Stellen Sie das Zeitintervall ein. Diese Routine setzt sich huckepack auf den TIMER0-Interrupt, der so eingestellt ist, dass er alle ~1 ms ausgelöst wird.
Ihr "Intervall" ist die Anzahl der zu verarbeitenden TIMER0-Interrupts. Jedes Intervall beträgt ~1 ms, Sie legen also wirklich fest, wie viele TIMER0-Interrupts gezählt werden sollen, bevor Ihr Intervall aktiviert wird. IOW, setzen Sie die Variable TIMER0_COUNT auf die Anzahl der Millisekunden, die Sie warten möchten. Verwenden Sie beispielsweise 500 für eine halbe Sekunde. Verwenden Sie 3000 für 3 Sekunden.
Schritt 3: Initialisierung unterbrechen
3. Fügen Sie Ihrer setup()-Methode den Code "TIMER0-Initialisierung" hinzu. Auch hier einfach kopieren und in setup() einfügen.
// *** TIMER0-Initialisierung ***
cli(); // alle Interrupts ausschalten TIMSK0 = 0; // Timer0 für niedrigeren Jitter ausschalten OCR0A = 0xBB; // beliebige Interrupt-Zählung TIMSK0 |= _BV (OCIE0A); // Huckepack auf Interrupt sei(); // Interrupts wieder einschalten
Schritt 4: Wo Sie Ihren Code hinzufügen
4. Fügen Sie Ihrer loop()-Methode den Code "time check" hinzu. Kopieren und einfügen in loop().
wenn (Zeit) {
Zeit = falsch; // hier etwas tun }
Die "Zeit = falsch;" Linie ist wichtig. Ohne diese Zeile würde(n) die Zeile(n) "hier etwas tun" jedes Mal ausgeführt, wenn das Programm loop() ausführt.
Selbstverständlich ersetzen Sie Ihre eigenen Aktivitäten in der Zeile "Hier etwas tun". Beginnen Sie mit dem Drucken von Text oder dem Blinken der LED.
Sie sind fertig!
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i