diff options
Diffstat (limited to 'kernel/drivers/pit.c')
-rw-r--r-- | kernel/drivers/pit.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c index 30fd3ed..41c0d2a 100644 --- a/kernel/drivers/pit.c +++ b/kernel/drivers/pit.c @@ -44,16 +44,14 @@ void set_pit_count(u16 _hertz) { } void int_clock(reg_t *regs) { - EOI(0x20); - pit_counter++; - if (pit_counter * 1000 >= hertz) { - pit_counter = 0; - clock_num_ms_ticks += 1000 / hertz; - } + clock_num_ms_ticks++; switch_counter++; - if (switch_counter * 500 >= hertz) { + if (switch_counter >= hertz) { + EOI(0x20); switch_counter = 0; switch_task(); + } else { + EOI(0x20); } } |