Kostenloser Elektrotechnik VIDEO-Kurs


Grundlagen der Elektrotechnik, Gleichstromnetze und Berechnungsverfahren
Wechselstrom- und Drehstromnetze, elektrische Maschinen und Regelungstechnik
Digitaltechnik, Mikrocontrollertechnik und C-Programmierung


Programmieren des Timer Interrupts

Heute geht es wieder ans Eingemachte. Mit einer schönen Aufgabe zum Schluss.
Wann wird ein Timer Interrupt denn nun aufgerufen, bzw. wie stellst Du ein, dass der Timer Interrupt genau dann ausgelöst wird, wann Du es möchtest?

Um diese Fragen geht es heute.

Die Zeit, bis ein Time raubgelaufen ist, ist zunächst einmal abhängig von der Taktfrequenz, mit der der Mikrocontroller betrieben wird. Von dieser Taktfrequenz ist abhängig, wie lange ein Maschinenzyklus dauert und die Dauer eines Maschinenzyklus bestimmt, wie schnell die Register TH0 und TL0 inkrementiert werden.
Ein Machinenzyklus dauert 12 Taktzyklen und nach jedem Maschinenzyklus wird der Zähler um 1 inkrementiert.

Ein Beispiel:

Wir der Mikrocontroller mit 12 MHz getaktet, beträgt die Frequenz für die Maschinenzyklen
12 Mhz : 12 = 1 MHz. Es gibt dann also 1 Million Maschinenzyklen pro Sekunde.
Ein Maschinenzyklus dauert also 1 µs. Jede µs wird das Registerpaar TH0/TL0 also inkrementiert.

Im Video lasse ich den Initialwert von TH0 und TL0 auf 0. Wir benötigen also 2 hoch 16 = 65536 Inkrementierungen bis zum Überlauf.
Die Interrupt Service Routine des Timers wird also jede 65536 x 1µs = 0,065536s aufgerufen.

Die Programmierung dieses Timers im Video




Deine Aufgabe

Durch die Wahl der Werte von TH0 und TL0 kann man bestimmen, wie lange es vom Start des Timers bis zum Aufruf der Interrupt Service Routine dauert.
Es soll nun ein Timer programmiert werden , der alle 10 ms aufgerufen wird und dann bei jedem 1000. Mal den Port P1 inkrementiert. Der Port P1 wird dann also genau alle 10s inkrementiert.

Hinweis

Berechne also zunächst einmal die Werte für TH0 und TL0, um einen Überlauf nach 10ms zu erreichen. Diese Werte musst Du in die Register TH0 und TL0 schreiben, bevor Du den Timer startest.
Zudem musst Du die Werte in der Interrupt Service Routine wieder in die Register TH0 und TL0 schreiben, weil Du ja möchtest, dass der Zähler genau bei diesen Werten weiterzählt,um nach 10 ms den nächsten Überlauf zu erhalten.

Viel Spaß!

Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .

Elektrotechnik muss nicht kompliziert sein.
Deshalb gibt es VIDEO-Tutorials.

Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Programmieren des Timer Interrupts:
1 Star2 Stars3 Stars4 Stars5 Stars
4,25 von 5 Punkten, basieren auf 4 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...


Fragen und Antworten zu diesem Artikel und zu anderen Themen findest Du im ET-Tutorials Forum

Ä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 ...

Timer Interrupt des 8051 Mikrocontrollers Zu den wichtigsten Aufgaben eines Mikrocontrollers gehören Steuerungs-, Regelungs- und Messaufgaben....

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...

Ein Programmablaufplan für die Pulsweitenmodulation Im heutigen Artikel soll die Pulsweitenmodulation mit Hilfe eines Programmablaufplans realisiert wer...

Externe Interrupts beim 8051 Heute geht es nun um die Programmierung eines externen Interrupts. Die Programmierung eines externen...