diff options
author | Juan J. Martinez <jjm@usebox.net> | 2023-06-06 21:44:15 +0100 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2023-06-06 21:44:15 +0100 |
commit | ba9fabf3367047a4e5db841ce8e73ef01d3f557c (patch) | |
tree | a4d57aeddd886ba50cfe294b6cb26d7836df251d | |
parent | 7ee199c7ccd524bd92b1e2b3787a41e6e2b6a579 (diff) | |
download | gold-mine-run-ba9fabf3367047a4e5db841ce8e73ef01d3f557c.tar.gz gold-mine-run-ba9fabf3367047a4e5db841ce8e73ef01d3f557c.zip |
Add timer wait
-rw-r--r-- | src/timer.c | 9 | ||||
-rw-r--r-- | src/timer.h | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/timer.c b/src/timer.c index 73675dc..d7810b6 100644 --- a/src/timer.c +++ b/src/timer.c @@ -3,14 +3,15 @@ #include <go32.h> #include <dpmi.h> -/* updates 18.2 times per second by default */ volatile uint32_t ticks = 0; +volatile static uint32_t ticks_to = 0; static _go32_dpmi_seginfo old_handler, new_handler; static void timer_handler() { ticks++; + ticks_to++; } void timer_init() @@ -26,3 +27,9 @@ void timer_free() if (_go32_dpmi_set_protected_mode_interrupt_vector(0x1c, &old_handler) == -1) fprintf(stderr, "Failed to free the timer :(\n"); } + +void timer_wait(uint8_t t) +{ + while (ticks_to < t); + ticks_to = 0; +} diff --git a/src/timer.h b/src/timer.h index 22ef6d2..8ae7e60 100644 --- a/src/timer.h +++ b/src/timer.h @@ -1,9 +1,13 @@ #ifndef _TIMER_H #define _TIMER_H +/* updates 18.2 times per second */ extern volatile uint32_t ticks; void timer_init(); void timer_free(); +/* each t is 54.9254 ms */ +void timer_wait(uint8_t t); + #endif /* _TIMER_H */ |