Programmable Interval Timer — Änderungen 7027 → 7033

Zeile 1: Zeile 1:
−
Der Programmable Interval Timer (PIT) ist ein signalerzeugender Baustein auf dem Mainboard. Er arbeitet intern mit einer Frequenz von 1193180 Hz und kann z. B. für präemptives Multitasking oder als Systemuhr genutzt werden.
+
Der Programmable Interval Timer (PIT) ist ein Baustein auf dem Mainboard, der in regelmäßigen Zeitabständen Signale erzeugt. Er arbeitet intern mit einer Frequenz von 1193180 Hz und kann z. B. für präemptives Multitasking oder als Systemuhr genutzt werden.
  
 
== Register ==
 
== Register ==
Zeile 9: Zeile 9:
 
|-
 
|-
 
|0x40
 
|0x40
−
|Counter-Register 0 setzen/lesen
+
|Counter-Register für Channel 0 setzen/lesen
 
|-
 
|-
 
|0x41
 
|0x41
−
||Counter-Register 1 setzen/lesen
+
||Counter-Register für Channel 1 setzen/lesen
 
|-
 
|-
 
|0x42
 
|0x42
−
||Counter-Register 0 setzen/lesen
+
||Counter-Register für Channel 2 setzen/lesen
 
|-
 
|-
 
|0x43
 
|0x43
Zeile 22: Zeile 22:
  
 
== Channels ==
 
== Channels ==
−
Der PIT besitzt drei Channels, wobei lediglich der erste (Channel 0) beliebig benutzt werden kann.
+
Der PIT besitzt drei verschiedene ''Channels'', die jeweils mit unterschiedlichen Intervallen laufen und unterschiedliche Signal erzeugen. Dabei kann lediglich der erste (Channel 0) beliebig benutzt werden, da die beiden anderen Channels bereits eine Sonderfunktion haben.
  
 
=== Channel 0 ===
 
=== Channel 0 ===
 
Dieser Channel ist mit dem [[PIC]] verbunden und löst je nach Modus in regelmäßigen Abständen den [[IRQ|IRQ 0]] aus.
 
Dieser Channel ist mit dem [[PIC]] verbunden und löst je nach Modus in regelmäßigen Abständen den [[IRQ|IRQ 0]] aus.
−
Im [[Real Mode]] hat das BIOS den PIT darauf initialisiert alle 54,9254 ms den IRQ 0 auszulösen. Die entsprechende [[ISR]] inkrementiert dann den Wert 0000:046C.
+
Standardmäßg ist der PIT darauf initialisiert, alle 54,9254 ms den IRQ 0 auszulösen (das entspricht einer Frequenz von ungefähr 18,2 Hz). Im [[Real Mode]] hat das BIOS für den IRQ 0 eine entsprechende [[ISR]] eingerichtet, die bei jedem Aufruf einen 16-Bit-Zähler an der Adresse 0000:046C erhöht.
  
 
=== Channel 1 ===
 
=== Channel 1 ===
Zeile 32: Zeile 32:
  
 
=== Channel 2 ===
 
=== Channel 2 ===
−
Dieser Channel ist mit dem [[Systemlautsprecher]] verbunden.
+
Dieser Channel ist mit dem [[Systemlautsprecher]] verbunden und bestimmt die Frequenz des ausgegebenen Tons.
  
 
== Modi ==
 
== Modi ==
−
Der am häufigste verwendete Modus ist Mode 2, da man mit diesem leicht eine Systemuhr implementieren kann.
+
Der PIT unterstützt mehrere verschiedene Modi, in denen er arbeiten kann. Der am häufigste verwendete Modus ist Mode 2, da man mit diesem leicht eine Systemuhr implementieren kann.
  
 
=== Mode 0: Interrupt on terminal count ===
 
=== Mode 0: Interrupt on terminal count ===
−
Wenn das Counter-Register mit einem neunen Wert geladen wurde, wird dieses dekrementiert, bis es 0 erreicht. Dann wird der wird der IRQ ausgelöst. Der Vorgang beginnt erst wieder von vorne, wenn ein neuer Wert ins Counter-Register geladen wird.
+
Wenn das Counter-Register mit einem neuen Wert geladen wurde, wird dieses dekrementiert, bis es 0 erreicht. Dann wird der wird der IRQ ausgelöst. Der Vorgang beginnt erst wieder von vorne, wenn ein neuer Wert ins Counter-Register geladen wird.
  
 
=== Mode 1: Hardware Retriggerable One-Shot ===
 
=== Mode 1: Hardware Retriggerable One-Shot ===