From e03b2ed579e84967648796897bd8aaf4256319e9 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sun, 20 Apr 2025 19:56:27 -0400 Subject: PIT (timer) --- kernel/drivers/pit.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 kernel/drivers/pit.c (limited to 'kernel/drivers/pit.c') diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c new file mode 100644 index 0000000..cb3c091 --- /dev/null +++ b/kernel/drivers/pit.c @@ -0,0 +1,23 @@ +#include +#include + +#define CHAN_0 0x40 +#define CHAN_1 0x41 +#define CHAN_2 0x42 +#define CMD 0x43 + +uint64_t ticks = 0; + +uint16_t pit_read_divider(void) { + uint16_t count = 0; + cli(); + outb(CMD, 0); // clear bits + count = inb(CHAN_0); // low byte + count |= inb(CHAN_0)<<8; // highbyte + return count; +} + +void pit_set_divider(uint16_t count) { + outb(CHAN_0, count & 0xFF); // low byte + outb(CHAN_0, (count & 0xFF00) >> 8); // high byte +} -- cgit v1.2.3-freya