| Zeile 1: | Zeile 1: | ||
| − | Der Programmable Interval Timer (PIT) ist ein | + | 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 | + | ||Counter-Register für Channel 2 setzen/lesen |
|- | |- | ||
|0x43 | |0x43 | ||
| Zeile 22: | Zeile 22: | ||
== Channels == | == Channels == | ||
| − | Der PIT besitzt drei Channels, | + | 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. | ||
| − | + | 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 | + | 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 === | ||