Jump to Navigation

adc parametru matavimas, trupmenines dalies ishvedimas

na nusiskaitau su adc tam tikra parametro verte, pasiskaiciuoju value[n]*scale[n]/255, value-adc reikshme 8bit, scale-max matavimo skales verte pvz 100. esme kad noriu ishvet prie shito skaiciaus dar ir kintama skaiciu skaitmenu po kablelio. gal kas patarsit kaip pasiskaiciuot ta reikshme?

lygtai kazkas tokio turtu but
pvz ishvedant du sk:
rprintf(",%d", (( (value[n]*scale[n]/255)*100)%100) );
bet kad nedirba :/

nu va taip rodos tvarkingai dirba, tik vietoj 100 reik statyt 10^(sk po kablelio sk) o tada jau kazkaip nelabai tvarkingai skaiciuoja..
rprintf(",%d",(( (value[n]*scale[n]*100))/255)%100) );

O tikrai nenori panaudoti paprastos float tipo kintamojo? Jeigu uztenka performanco ir kompiliuojant programa nevirsyja flash tai gali naudoti pavz:

char mystr[16];//eilutes buferis

double myflt1, myflt2;//realus kintamieji

myflt1 = 3.14159;//kazkokia pradine realioji reiksme

myflt2 = myflt1*5.1324;//kazkoks veiksmas su realiaisiais skaiciais

sprintf(mystr, "%.5f", myflt2);//kopijuoja realu skaiciu su 5 skaitmenim po kablelio i buferi

lcdInit();//inicijuojamas LCD

lcdPrintData(mystr, 8);//skaicius isvedamas i LCD

Isbandyta ir veikia.

Komentuoti



Main menu 2

by Dr. Radut.