UnnamedOS
pit.h
1 #ifndef HARDWARE_PIT_H
2 #define HARDWARE_PIT_H
3 
4 #include <stdint.h>
5 #include <interrupts/isr.h>
6 
7 typedef struct {
8  uint32_t wait_until;
9  enum {
10  PIT_INVALID,
11  PIT_WAITING_UNTIL_OVERFLOW,
12  PIT_WAITING_UNTIL_TIMEOUT,
13  PIT_TIMED_OUT
14  } state;
16 
17 uint8_t pit_init_channel(uint8_t channel, uint8_t mode, uint32_t freq);
18 void pit_init(uint32_t new_freq);
19 void pit_dump_time();
20 void pit_sleep(uint32_t ms);
21 pit_timeout_t pit_make_timeout(uint32_t ms);
22 int8_t pit_timed_out(pit_timeout_t* timeout);
23 
24 #endif