你应该了解一下所用的C编译程序有没有带浮点库。如能选用一个带浮点库的C编译程序,就行了。
否则,你要自己编写浮点子程序的话,最好也不应该用C语言编,而应该用汇编来编,最后连接时再和你的C语言的主程序连接在一起。
因为,如过你的浮点子程序都是直接用C语言写的,那效率就太低了。在51单片机这样的环境下,恐怕大多数的应用,都会嫌它太笨重,不合要求。
你说你过去用汇编语言“直接调用子程序”,请问那些子程序是自己编的呢?还是某个开发系统提供的标准子程序?
如果是你自己编的,那么,你只要了解一下C51中函数的出口入口的寄存器规则,将你的子程序改一下,使他符合这些规则,即可。
如果那些子程序是别人提供的标准子程序,那么您可以了解一下,那些子程序的入口、出口条件是否和C语言的要求兼容,如果兼容,那就可以直接连接了。
补充一点看法
从您的问题补充来看,您的应用中对精度的要求不高,完全可以采用定点的Q格式,不用浮点运算。最合理。
假如用浮点,即使浮点子程序都是汇编编的,效率也会比定点的Q格式差很远(一、两个数量级)。如果子程序本身再用C语言来编,那就更不知差到什么程度了。
子程序调用M98Oxxxx子程序号
子程序调用格式M98PXXXX XXXX前者为调用次数后者为子程序号。例;
M98P51002意思是调用子程序O1002,5次。
M99返回主程序M99不必在单独程序段内指令,例;X100Z100M99;
你所说的程序为:
T0200M09用2号刀
M04S500
G00X52Z30假设棒料直径为50mm,前段长为25mm
G01X-1F015
G0X52
M98P5 1001调用子程序5次
G00X100Z20
M05M09
M30
O1001子程序
G00W-30
G01X-1F015
G00X52
M99
你好!
Keil5本身并不提供直接生成流程图的功能,但可以使用一些工具来生成流程图。
下面介绍一些生成Keil5程序流程图和子程序流程图的方法:
使用Doxygen工具
Doxygen是一种自动化文档生成工具,它可以自动分析源代码并生成各种文档,包括流程图。在Keil5中,可以将程序文件导出为一个文件夹,然后使用Doxygen对该文件夹进行分析,生成程序流程图和子程序流程图。具体使用方法可以参考Doxygen的官方文档。
使用GraphViz工具
GraphViz是一种开源的图形可视化工具,它可以生成各种流程图、状态图等。在Keil5中,可以将程序文件导出为一个dot文件,然后使用GraphViz将该文件转换成流程图。具体使用方法可以参考GraphViz的官方文档。
使用Cscope工具
Cscope是一种代码浏览器,它可以方便地查找函数、变量、宏等。在Keil5中,可以使用Cscope查找程序中的函数和调用关系,然后手动绘制流程图和子程序流程图。
以上就是关于求 51单片机浮点运算子程序 C51编程全部的内容,包括:求 51单片机浮点运算子程序 C51编程、数控车床主程序和子程序是怎么调用的例如我想加工一个工件然后再把它切断后,再做一个怎么调用子程序、keil5程序如何生成主程序流程图以及各子程序流程图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)