jankos/pit.c

23 lines
479 B
C

#include "pit.h"
#include "types.h"
#include "interrupts.h"
#include "serial.h"
#include "stlio.h"
volatile u32 timer_ticks = 0;
void inc_ticks(struct cpu_reg_state* cpu) {
timer_ticks++;
if(timer_ticks % 18 == 0) {
printf("One second passed\n");
}
}
void timer_wait(u32 time) {
u32 ticks = time + timer_ticks;
while(timer_ticks < ticks);
}
void pit_install_timer(void) {
init_irq_handler(0, inc_ticks); // timer interrupt request falls into int 0
}