feat(drivers): remap PIC and drive PIT at 100 Hz
This commit is contained in:
1 parent
8c846c9ca5
commit
371b50a3a5
4 files changed
+119
No files matched your search
@@ -0,0 +1,34 @@
|
||||
#include "pit.h"
|
||||
#include "ports.h"
|
||||
|
||||
#define pitChannel0 0x40
|
||||
#define pitCommand 0x43
|
||||
#define pitBaseFrequency 1193182
|
||||
|
||||
static volatile uint64 tickCount;
|
||||
static uint32 configuredFrequency;
|
||||
|
||||
void pitInit(uint32 frequency)
|
||||
{
|
||||
configuredFrequency = frequency;
|
||||
uint32 divisor = pitBaseFrequency / frequency;
|
||||
|
||||
outb(pitCommand, 0x36);
|
||||
outb(pitChannel0, (uint8)(divisor & 0xFF));
|
||||
outb(pitChannel0, (uint8)((divisor >> 8) & 0xFF));
|
||||
}
|
||||
|
||||
void pitTick(void)
|
||||
{
|
||||
tickCount++;
|
||||
}
|
||||
|
||||
uint64 pitTicks(void)
|
||||
{
|
||||
return tickCount;
|
||||
}
|
||||
|
||||
uint32 pitFrequency(void)
|
||||
{
|
||||
return configuredFrequency;
|
||||
}
|
||||
Reference in new issue
Block a user