2024-11-02 11:31:51 +00:00
|
|
|
#include <mango/clock.h>
|
|
|
|
|
#include <mango/printk.h>
|
|
|
|
|
#include <mango/compiler.h>
|
2023-04-28 20:51:51 +01:00
|
|
|
|
|
|
|
|
static clock_ticks_t ticks_per_sec = 0;
|
|
|
|
|
volatile clock_ticks_t clock_ticks = 0;
|
|
|
|
|
|
|
|
|
|
clock_ticks_t clock_hz(void)
|
|
|
|
|
{
|
|
|
|
|
return ticks_per_sec;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void clock_calibrate(clock_ticks_t hz)
|
|
|
|
|
{
|
|
|
|
|
ticks_per_sec = hz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void clock_advance(clock_ticks_t ticks)
|
|
|
|
|
{
|
|
|
|
|
clock_ticks += ticks;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void clock_wait(clock_ticks_t ticks)
|
|
|
|
|
{
|
|
|
|
|
clock_ticks_t end = clock_ticks + ticks;
|
|
|
|
|
while (clock_ticks < end) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|