Нужно отмасштабировать сигнал с АЦП с коэффициентом 0..1.
Коэффициент 16-битный, точности достаточно.
Ну и разобраться, как оно вообще работает.
Думаю, должно быть быстрее и короче, чем через float.
Имею примерно следующее.
uint16_t result,k;
uint32_t x;
x=analogRead(an0)*k;
x=x>>16;
result=x;
С любого разворота умножение даёт ноль.
У большинства потребителей вход максимум 16-битный, не понял, как присвоить известно какую часть uint32 в uint16, младшую или старшую, где почитать? Что присваивается при обычном присвоении?
И вообще, такой вариант должен работать тупо в лоб, или нужно искать какие-то доп. библиотеки?


