/** * @file * * PIT - Programmable Interval Timer * * config out timer on channel 0 : mode 2 (sys timer) * * http://en.wikipedia.org/wiki/Intel_8253#Control_Word_Register * * http://www.brokenthorn.com/Resources/OSDevPit.html * int0 will be triggered ~25 times a second. * * The most magic is performed in pit_interrupt_handler which calls * the c function responsible for task switching doing vary bad ass * magic... */ #include /** Init PIT - 25 times a second*/ void asm_pit_init(); /** install this interrupt handler to your Interrupt Vector Table */ void asm_pit_tick(); /** get number of ticks */ uint32_t asm_pit_get_ticks();