18 lines
381 B
C
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));
|
|
}
|