Timer Interrupt Lösung der Aufgabe

Am Ende der vergangen Folge, in der es um die Programmierung eines Timer Interrupts ging, hatte ich die Aufgabe gestellt, eine Interrupt Service Routine zu erstellen, die den Port P0 genau alle 10 Sekunden inkrementiert.

Die Aufgabe sollte so gelöst werden, dass der Interrupt Service Routine des Timers 0 alle 10 ms aufgerufen wird.

Bei jedem 1.000 Durchlauf der Interrupt Service Routine sollte dann der Port inkrementiert werden.

1000 x 10ms = 10s

Zunächst müssen also die SFR-Register TH0 und TL0 bestimmt werden, um eine Zeit von 10ms z realisieren. Im Video rechne ich die Prozedur einmal vor.

Die Berechnung der Timer-Werte für TH0 und TL0

Damit Du die Werte besser mit Deinen Werten vergleichen kannst, gebe ich die Rechung hier noch einmal kurz an.

Der Mikrocontroller wird mit 12 MHz getaktet. Durch den Teiler von 12 wird TL0 also jede µs inkrementiert.

10 ms entsprechen 10.000 Inkrementierungen, denn 10.000 x 1µs = 10 ms

Da die beiden Bytes bei 0xFF, dezimal also 65536 überlaufen, muss der Timerstand dezimal auf

65536-10000 =55536

gesetzt werden.

55536 dez entspricht D8F0 hexadezimal

Damit ergeben sich folgende Werte:

TH0 = 0xD8;
TL0 = 0xF0

Soweit zur Theorie 😉

Video zur Programmierung des Timers

Im Video zeige ich die Programmierung der Interrupt Service Routine. Wichtig hierbei ist die Werte für TH0 und TL0 in der Interrupt Service Routine noch einmal zu setzen, weil die Zähler ansonsten beim aktuellen Stand, also TH0 = 0x00 und TL0=0x00 loslaufen würden, statt bei TH0 = 0xD8 und TL0 = 0xF0.
Zudem darf natürlich nicht vergessen werden mit

  • EAL = 1; Interrupts generell freizugeben
  • ET0 = 1; den Interrupt für den Timer 0 freizugeben
  • TR0 = 1; den Timer zu starten

Viel Spaß beim Video und bis zum nächsten Mal. Dann geht es um das auto-reload, bei dem der Timerstartwert „automatisch“ gesetzt wird.


Noch Fragen zum Video?


Hast Du noch Fragen zu diesem Thema oder auch zu anderen Themen der Elektrotechnik?

Nutze den kostenlosen Elektrotechnik VIDEO-Kurs um fit in der Elektrotechnik zu werden.

Kostenloser Elektrotechnik VIDEO-Kurs

Dieser Artikel ist Teil des Elektrotechnik VIDEO-Kurses hier auf ET-Tutorials.de.

Falls Du noch kein Kursteilnehmer bist findest Du hier weitere Informationen zum VIDEO-Kurs und zur Anmeldung.



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