2025-11-08 05:38:44
要写浮点数得先搞懂pic单片机能不能跑浮点。首先得查手册看有没有FPU单元,像pic18系列带FPU的才能直接算。然后要配置FPU寄存器,设置指令格式用单精度还是双精度。接着用math库里的函数,比如sqrt、pow这些,记得函数名前加_f。测试时多跑跑看有没有溢出或者精度问题,像用0.1加0.2可能得到0.这种。
为啥得这么整呢?因为pic单片机早期不带FPU得自己算浮点,现在带FPU的型号像pic24h系列FPU功耗才0.8mW,算100次sqrt比整数快3倍。手册说用_f函数比硬编码浮点指令省内存15%,比如sqrt_f占8字节,自己写要占20。测试数据看,用库函数处理100万次运算,pic32mx795s微控制器耗时0.12秒,而没开FPU的耗时要2.3秒。不过要注意内存,带FPU的芯片ram至少要64KB,不然算的时候容易爆。
本题链接: