Arduino Timer unterbricht (2 / 6 schritt)

Schritt 2: Strukturierung Timer unterbricht



Timer-Setup-Code erfolgt innerhalb der setup() {} Funktion in ein Arduino-Skizze.

Der Code für das Einrichten von Zeitgeber-Interrupts ist ein wenig beängstigend zu sehen, aber es ist eigentlich nicht so schwer.  Ich ziemlich genau die gleichen wesentlichen Stück Code zu kopieren und ändern der Vorteiler und vergleichen Spiel registrieren, um die richtigen Interrupt-Frequenz einstellen.

Die Hauptstruktur des Interrupt-Setup sieht wie folgt aus:

 

Beachten Sie, wie der Wert der OCR #A (Compare Match-Wert) für jeden der diese Timer-Einstellungen ändert.  Wie im letzten Schritt erklärte, war dies nach der folgenden Gleichung berechnet:

Vergleichen Sie Match Register = [16.000, 000Hz / (Vorteiler * gewünscht Interrupt-Frequenz)] - 1
Denken Sie daran, dass bei Verwendung von Timer 0 und 2 diese Zahl kleiner als 256 und weniger als 65536 für timer1 sein muss

Beachten Sie auch, wie die Setups zwischen den drei Timer in der Linie abweichen die CTC-Modus aktiviert wird:
TCCR0A | = (1 << WGM01); //for timer0
TCCR1B | = (1 << WGM12); //for timer1
TCCR2A | = (1 << WGM21); //for timer2
Dies folgt direkt aus dem Datenblatt des ATMEL 328/168.

Beachten Sie schließlich, wie das Setup für die Prescalers die Tabellen im letzten Schritt folgt (die Tabelle für Timer 0 oben wiederholt),
TCCR2B | = (1 << CS22);  Gesetztes CS #2 Bit für 64 Vorteiler für Timer 2
TCCR1B | = (1 << CS11);  Gesetztes CS #1 Bit für 8 Vorteiler für Timer 1
TCCR0B | = (1 << CS02) | (1 << CS00);  Setzen Sie CS #2 und CS #0 Bits für 1024 Vorteiler für Timer 0

Beachten Sie im letzten Schritt gibt es verschiedene Optionen für die verschiedenen Timer prescaling.  Timer2 muss beispielsweise nicht die Möglichkeit, 1024 Vorteiler.

Die Befehle, die Sie während dieser Zeitgeber-Interrupts ausführen möchten befinden sich in der Arduino-Skizze gekapselt in folgendem:
ISR(TIMER0_COMPA_vect) {//change 0 und 1 für timer1 und 2 für timer2
Interrupt-Befehle hier
}
Dieses Stück Code sollte außerhalb der setup() und loop() Funktionen befinden.  Versuchen Sie auch, um die Interrupt-Routine so kurz wie möglich zu halten, vor allem, wenn Sie mit einer hohen Frequenz unterbrochen sind.  Es kann sich auch lohnen, Adressierung die Anschlüsse/Pins des ATMEL Chips direkt anstelle mit den Funktionen digitalWrite() und digitalRead().  Finden Sie mehr Infos über dieses hier.

Beispiel-die folgende Skizze einrichtet und führt 3 Timer-Interrupts:

 //timer interrupts //by Amanda Ghassaei //June 2012 

Die Bilder oben zeigen die Ergebnisse dieser Zeitgeber-Interrupts.  Abb. 2 zeigt die LED an Pin 13 Einschalten eine Sekunde lang angeschlossen Fig 1 zeigt ein Rechtecksignal, oszillierend zwischen 0 und 5V bei 1kHz (timer0 Interrupt), dann für eine Sekunde (timer1 Interrupt) auszuschalten, Abb. 3 zeigt eine Pulswelle oszillierend zwischen 0 und 5 v bei einer Frequenz von 4khz (timer2 Interrupt).

In Verbindung stehende Artikel

Arduino-Time-Lapse-Controller

Arduino-Time-Lapse-Controller

dieses Projekt ursprünglich begann mit ein paar einfachen Teile zusammen, um einen sehr einfachen Zeitraffer Controller für eine DSLR-Kamera geworfen. Nachdem ich zufrieden mit dem ersten Prototyp war, wollte ich machen eine endgültige Version, die d
Machen einen Arduino-Timer

Machen einen Arduino-Timer

Hi, also mir und meinem Kumpel einrichten, damit wir, Wartungsteilen sicherstellen können. Wir machen derzeit eine UV Belichtung Box (möglicherweise eine andere Instrucable) und für diese Box, wir brauchten einen Timer, so dies, ist was wir bisher ge
Arduino-Timer

Arduino-Timer

Hallo allerseits, diese instructable geht es darum wie man baut eine Stoppuhr / Timer mit Arduino.Merkmale dieser Timer: (Check für mehr Tiefe Details gewusst wie: verwenden Sie diese Funktionen im Abschnitt "Code/Skizze"1. Sie können eine Zielz
Iontophorese von Arduino Timer gesteuert

Iontophorese von Arduino Timer gesteuert

DIY Iontophorese Gerät powered by Arduino mit Timer-FunktionDiese Geräte haben einen Polarität-Schalter auf dem eingestellten Zeitintervall (ON und OFF).Schritt 1: Hintergrund GESCHICHTE:Hyperhidrose ist die Bedingung gekennzeichnet durch krankhaft v
Timer unterbricht auf die DP32

Timer unterbricht auf die DP32

Timer! Ich freue mich, endlich Timer auf meinem Lieblings-Board, DP32abdecken!Denken Sie daran, wie damals, als ich über externe Interrupts schrieb? Wenn Sie nicht mit Interrupts und deren Funktionsweise vertraut sind, empfehle ich das Tutorial zuers
DIY Arduino Time Lapse Panner für GoPro

DIY Arduino Time Lapse Panner für GoPro

Ich brauchte, um ein Panner, die 1 Umdrehung über 5 Minuten schaffen würde.Entdeckte ich zwei weitere Projekte auf mir basieren. Bau ist ziemlich identisch mit der Source-Projekte weiter unten.Ich schrieb Teil des Codes. Mein TimeLapse-Panner fordert
Arduino Time Lapse-Slider

Arduino Time Lapse-Slider

Also ich hatte in die Herstellung ein Timelapse video mit meiner Dslr gesucht und gesehen hatte, viele mit einem Slider-Mechanismus, eine weitere Dimension hinzuzufügen. Ich schaute auf zu kaufen, aber sie sind ein wenig teuer zu kaufen, nur um "die
Autopilot - basierend auf dem Arduino Boot

Autopilot - basierend auf dem Arduino Boot

Hier ist, wie man einen Autopiloten zu bauen, die eine RC lenken kann Boot zu Wegpunkten! Es ist leicht zu bauen, basierend auf der beliebten Plattform Arduino und ideal für Bastler wollen einige Löten Praxis! Mit dieser Autopilot kann eine RC Boot l
Eine solar-Tracking-automatische motorisierte Fenster blind Nachrüstung mit Arduino

Eine solar-Tracking-automatische motorisierte Fenster blind Nachrüstung mit Arduino

Gebäude-Konto für 20-40 % der Gesamtenergie verwenden in den entwickelten Ländern. Jalousien (oder Jalousien) können helfen, reduzieren Gebäude Energie verwenden und Sehkomfort (d. h. reduziert Blendung und Erhöhung der Tageslichtnutzung) verbessern.
Ein Arduino RSS-Feed anzeigen

Ein Arduino RSS-Feed anzeigen

das Arduino-Projekt zeigt RSS-feed-Schlagzeilen auf einem LCD über ein Arduino und ein USB-Kabel. Es funktioniert ganz gut, und lässt Sie mit den Weltnachrichten mithalten, während Sie an Ihrem Schreibtisch sitzen. Viele der Werte im Code können geän
Lesen u/min von Arduino-basierte IR Drehzahlmesser mit MATLAB GUI

Lesen u/min von Arduino-basierte IR Drehzahlmesser mit MATLAB GUI

Hallo wieder, ein paar Tage zurück ich gepostet ein instructable Infrarot-Drehzahlmesser mit Arduino, dann merkte ich, dass anstatt den u/min-Wert in der Arduino IDE serial Monitor lesen, mehr High-Tech-aussehen würde die u/min in einen entsprechende
Stereo-Audio mit Arduino

Stereo-Audio mit Arduino

Vor kurzem habe ich eine Menge Projekte Entsendung, die eine 8-Bit Widerstand Leiterdigital zu analog Konverter (DAC) und ein Arduino verwenden, um klingen zu lassen. (siehe Feld Stimmeffekten Arduino, Arduino-Drum-Sampler und meine Anleitung, audio-
WLAN-Arduino Oszilloskop

WLAN-Arduino Oszilloskop

In dieser Anleitung erkläre ich wie man eine Windows 8.1 Telefon, Arduino Uno Board und HC-05 Bluetooth-Modul verwenden, um eine drahtlose Oszilloskop zu bauen. Die Telefonanwendung hat die kritischen Funktionen eines Oszilloskops, obwohl die Bandbre
Einfache Mobile Data Logging mit PfodApp, Android und Arduino

Einfache Mobile Data Logging mit PfodApp, Android und Arduino

Moblie Data Logging leicht gemachtverwenden PfodApp, Andriod Handy und Arduino.KEIN Android Programmierung.Plotten Daten auf Ihrem Android-Gerät finden Sie in dieser späteren InstuctableEinfache Remote Daten Plotten mit Android / Arduino / PfodAppEin