day02/ex04/src/utils.c
2026-04-15 17:16:45 +02:00

28 lines
600 B
C

#include "utils.h"
// this just burns cycles.
// the volatile is important, it means that the cpu can't optimize any
// read/writes for the value
static inline void spin_loop(volatile uint16_t counts) {
while (counts)
counts--;
}
void delay_ms(uint16_t ms) {
while (ms) {
// this value was taken using a delay of 500ms, and just recording the led
// blinking. it seems to be high enough such that each loop of delay_loop
// takes 1ms :D
spin_loop((F_CPU) / 5000);
ms--;
}
}
void ft_bzero(void* data, uint16_t size) {
char* d = data;
while (size) {
*d = 0;
d++;
size--;
}
}