У меня есть вопрос о математике в C, быстрый пример ниже:
uint32_t desired_val;
uint16_t target_us=1500
uint32_t period_us=20000;
uint32_t tempmod=37500;
desired_val = (((target_us)/period_us) * tempmod);
В данный момент (target_us / period_us) приводит к 0, который дает требуемый_значение также 0. Я не хочу делать эти переменныеплавать, если я действительно не должен.Мне ничего не нужно после запятой, поскольку она будет сохранена в 32-битном регистре.
Можно ли получить правильные результаты из этого уравнения, не объявляя target_us или period_us как float?Я хочу сделать вычисления с фиксированной запятой, когда это возможно, и с плавающей запятой, когда это необходимо.
Работа на Cortex-M4, если это поможет.