Sehr häufig müssen in diesen Aufgabenstellungen Zeiten sehr genau eingehalten werden, um zeitkritische Abläufe zu messen und zu steuern .
Aus diesem Grund sind Mikrocontroller häufig mit mehreren Timern ausgestattet, die unabhängig voneinander programmiert werden können.
Bei Ablauf eines Timers wird dann beispielsweise eine Interrupt Service Routine aufgerufen, die so also genau zu dem gewünschten Zeitpunkt zuschlägt
Heute geht es darum, wie die Timer eines 8051 Mikrocontrollers programmiert werden und welche Register man zur Programmierung benötigt.
Konfiguration eines Timers
Die Konfiguration eines Timer Interrupts ist etwas aufwändiger als beim externen Interrupt.
Im ersten Video zeige ich also zunächst einmal die wichtigsten Register zur Konfiguration eines Timers.
Im zweiten Video zeige ich dann die Konfiguration des Timers und die Programmierung der Interrupt Service Routine am Emulator.
Deine Aufgabe
Heute gibt es keine spezielle Programmieraufgabe, in der Du eine bestimmte Aufgabe lösen sollst.
Du solltest Dich aber bis zur nächsten Folge mit dem Timer beschäftigen. So könntest Du beispielsweise das Beispiel nachprogrammieren, oder dieses Beispiel auf den Timer 1 übertragen.
Wichtig ist hierbei, dass Du die zu verwendenden Register kennenlernst. Also: Mit welchem Register gibt man den Timer frei, wie startet man einen Timer, wie schreibt man eine Interrupt Service Routine, usw.
Man muss die Befehle einmal selbst eingetippt haben, die Regioster einmal selbst gesetzt und gelöscht haben, um ein Gefühl dafür zu bekommen.
Also: Programmiere das Beispiel einmal nach und setze es anschließend für den Timer 1 um.
Die Priority Order für den Timer 1 ist übrigens 3.
Also void ISR_Timer1(void) interrupt 3
{}
Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .
Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)
|
Ähnliche Artikel
Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:Timer Interrupt Lösung der Aufgabe Am Ende der vergangen Folge, in der es um die Programmierung eines Timer Interrupts ging, hatte ich ...
Externe Interrupts beim 8051 Heute geht es nun um die Programmierung eines externen Interrupts. Die Programmierung eines externen...
Ein Programmablaufplan für die Pulsweitenmodulation Im heutigen Artikel soll die Pulsweitenmodulation mit Hilfe eines Programmablaufplans realisiert wer...
Timer Interrupts 8 bit auto reload In dieser Folge geht es um den Mode 2 des Timer Interrupts, dem 8 bit auto-reload Modus. Im Gegensat...





{ 2 Kommentare… sie unten lesen oder einen hinzufügen }
Hallo Wolfgang,
Erst einmal vielen Dank für das tolle video, war sehr aufschlussreich!
Jedoch ist bei mir noch eine Frage offen geblieben.
Die Zeit die der Timer zum überlaufen braucht wird doch sicher nicht wahllos gewählt, gibt es eine Formel die beschreibt welche Zahl ich ins Timer register schreiben muss um eine bestimmte ablaufzeit zu bekommen (in sekunden oder ms) und ist diese Zeit vom Quarz abhängig (Intern, Extern)?
Mit freundlichen Grüßen
Chris
Peinlich bin erst gerade auf das nächste video gestoßen.
Die Frage hat sich somit erledigt.
Mit freundlichen Grüßen
Chris