надо убрать плавающую запятую совсем и сделать просто
adcVolt = (adcCode * 149) >> 4;
результат получится в десятках наноВольт с точностью до 0.007%.
Цитата
Надо примерно так:
double znachenie_acp = acp.sl*(5.0/(2147483648*64));
вот так как раз не надо (особенно учитывая что это codevision), потому что (2147483648*64) хоть и стоит рядом с 5.0, думаю вполне может оказаться что будет сначала посчитано как int (который у АВР кстати вообще 16 битный, хотя опять же, как там у codevision - не уверен) а только потом преобразовано в double.