KernOS
|
Timer namespace. More...
Enumerations | |
enum | PORT : uint8_t { CHANNEL_O = 0x40, CHANNEL_1 = 0x41, CHANNEL_2 = 0x42, COMMAND = 0x43 } |
enum | CHANNEL : uint8_t { TIMER0 = 0x00, TIMER1 = 0x40, TIMER2 = 0x80 } |
enum | ACCESSMODE : uint8_t { LATCH = 0x00, LO_ONLY = 0x10, HI_ONLY = 0x20, HI_LO = 0x30 } |
enum | OPMODE : uint8_t { COUNTDOWN = 0x0, ONESHOT = 0x2, RATE_GENERATOR = 0x4, SQUAREWAVE_GENERATOR = 0x6, SOFTWARE_STROBE = 0x8, HARDWARE_STROBE = 0xA, RATE_GENERATOR2 = 0xC, SQUAREWAVE_GENERATOR2 = 0xE } |
enum | DECIMALMODE : uint8_t { BINARY = 0x0, BCD = 0x1 } |
Functions | |
void | PIT_825x () |
Variables | |
uint64_t | timer_ticks |
const uint32_t | BASE_FREQ = 1'193'182 |
14.31818 MHz / 12 (due to hardware historical reason) More... | |
const uint16_t | TICKS_PER_SECOND = 1'000 |
Timer namespace.
Programmable Interval Timer (PIT) 8253/8254 chip.
Mode/Command byte | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | | Channel | Access | Operating | BCD/Binary |
enum TIMER::ACCESSMODE : uint8_t |
enum TIMER::CHANNEL : uint8_t |
enum TIMER::DECIMALMODE : uint8_t |
enum TIMER::OPMODE : uint8_t |
enum TIMER::PORT : uint8_t |
const uint32_t TIMER::BASE_FREQ = 1'193'182 |