adc parametru matavimas, trupmenines dalies ishvedimas
Pirminės kortelės
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?
Forums:
- Komentuoti
- Citavimas
- 572 peržiūros
adc parametru matavimas, trupmenines dalies ishvedimas
lygtai kazkas tokio turtu but
pvz ishvedant du sk:
rprintf(",%d", (( (value[n]*scale[n]/255)*100)%100) );
bet kad nedirba :/
adc parametru matavimas, trupmenines dalies ishvedimas
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) );
adc parametru matavimas, trupmenines dalies ishvedimas
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