ch32v003 編譯符點(diǎn)運(yùn)算,flash空間占用巨大

? ? ? ?ch32v003 編譯符點(diǎn)運(yùn)算,flash空間占用巨大.

代碼如下,如果運(yùn)算中加上*0.1,這一行代碼要占用11%的flash空間。

?data=data+((T+128)-data2)*data3*0.1;

如果去掉*0.1. 代碼空間減少11%的flash空間。

?data=data+((T+128)-data2)*data3;


請問這是因?yàn)槭裁茨兀渴且驗(yàn)榧尤敕c(diǎn)運(yùn)算后,會編譯 math文件么?

您好,首先兩種寫法都不會引入MATH庫,那個需要顯示的引用。因?yàn)?03沒有浮點(diǎn)擴(kuò)展,所以會用軟件處理,其次默認(rèn)浮點(diǎn)常量是雙精度型的,您可以按照下方圖片去更改成單精度,另外你可以更兩種不同情況下生成的lst文件去對比,如還有問題可以發(fā)送郵件到y(tǒng)angy@wch.cn。

image.png


我用這個:

void?PrintFloat(float?value)
{
????int?tmp,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6;
????tmp?=?(int)value;
????tmp1=(int)((value-tmp)*10)%10;
????tmp2=(int)((value-tmp)*100)%10;
????tmp3=(int)((value-tmp)*1000)%10;
????tmp4=(int)((value-tmp)*10000)%10;
????tmp5=(int)((value-tmp)*100000)%10;
????tmp6=(int)((value-tmp)*1000000)%10;
????sprintf(message,"溫度Temperature:?%d.%d%d%d%d%d%d\r\n",tmp,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6);
}



只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频