Files
TestOS/os/delay.c
2024-11-03 15:01:54 +01:00

18 lines
381 B
C

#define CLOCK_FREQUENCY 168000ULL
unsigned int ms_to_ticks(unsigned int ms) {
return ms * (CLOCK_FREQUENCY/3);
}
void delay_routine(unsigned int delay_counter) {
asm("mov r1, %[input]\n"
"delay_loop:\n"
"subs r1, #1\n"
"bne delay_loop\n"
: [input] "=r" (delay_counter));
}
void delay_ms(unsigned int seconds) {
delay_routine(ms_to_ticks(seconds));
}