-
-
Erfahrener Benutzer
Fleißiges Mitglied
Zur grundsätzlichen Funktion des Timers:
Ist TR0 gestzt wird das Timerregister bei jedem Maschinentakt um eins
erhöht. Es wird also der Maschinentakt gezählt.
Im Modus2 wird das 16-Bit Timerregister in zwei 8-Bit Register geteilt.
Das Lowbyte wird dann als Zählregister benutzt. Der Wert im Highbyte
wird bei einem Überlauf des Zählregisters in dieses geladen.
Mehr macht der Timer eigentlich nicht.
In deinem Program wird ein Interupt benutzt.
Ein Interupt ist eine Programunterbrechung. Ist die entsprechende
Bedingung erfüllt wird eine bestimmte Stelle im Programspeicher
angesprungen. Diese Stellen nennen sich Interuptvectoren und befinden
sich am Anfang des Speichers. Um Interupts zuzulassen ist es nötig
das Bit EAL zu setzen. Mit setzen des ET0 Bit wird der Interupt des
Timer0 aktiviert.
In deinem Fall wird bei jedem Unterlauf des Timer0 der entsprechende
Vector angesprungen und der Code zum erzeugen der Zeitbasis
ausgeführt.
Eine gute Anlaufstelle ist die Seite von Erik Buchmann.
Sie behandelt zwar den AT89c2051, das kann dir aber egal sein. Alle
8051 Controller haben den selben Befehlssatz.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen