Weil Du erst mal nur Integer miteinander multiplizierst und danach erst einen Float daraus machst.
5000/1024 = 4 (rest: 0.8828125)
Fehlerwert= (4.8828125-4)/4.8828125 = 18,08% (Probier's mal mit 360V aus)
besser ist:
Code:const float vref = 5.0; float scale = vref/1024.0; float voltage = 0.0; char buffer[7]; while(true) { voltage = scale * (float)adconvert(1); sprintf( buffer, "%5.4f", voltage ); functionToPutStuffToDisplay(buffer); }
Lesezeichen