Я работаю над маленьким 32-разрядным микроконтроллером без FPU. Мне нужен способ конвертировать счетчик 100 МГц, чтобы быть правильными миллисекундами.Математика с фиксированной точкой для преобразования счетчика 100 МГц в миллисекунду
Я хочу создать функцию, которая вернет мне текущее время в миллисекундах.
static uint32_t prev_time;
static uint32_t time;
uint32_t get_current_time()
{
curr_time = get_100MHz_counter_value();
uint32_t elapsed_time = curr_time - prev_time;
prev_time = curr_time;
time = /* DONT KNOW HOW TO CONVERT THE TIME USING FIXED POINT MATH */
return time;
}
Разделить на 100000? Уверен, у вас есть деление – immibis
100MHz = 100000000 циклов в секунду. Как сказал immibis, разделите на 100000 за миллисекунды. Вам не нужна математика с плавающей запятой, целые числа будут работать нормально. – MateoConLechuga
деления очень дороги в конструкции микроконтроллеров. – Godspped