23 lines
479 B
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
|
|
}
|