单精度浮点的表示方法
符号位是1位数据。“o”表示正数,“1”表示负数的意思。
指数位是8位数据。用2的指数来表示,IEEE中是用127来偏移的,比如2X1的情况是用的方法来实现的。
小数位是23位数据。单精度浮点的精度是24位,有一位不足。小数位表示的是从1.0到1.99999988的数,较高位必须是“1”。因此可以默认较高位为“1”,从而可以节省一位。
表现的是0.0的单精度浮点。0.0比较特殊 伺服电机维修技术,每个位都是“0”。
表示的是+1.0的单精度浮点。+1.0是符号位 伺服电机维修方法,如果将指数位和小数位分开的话,便可以表示+2U27_127)X1.0,符号位为“0”,指数位为127 伺服电机维修,小数位为0。
表示的是+2.0的单精度浮点。+2.0是符号位,如果将指数位和小数位分开的话,便可以表示+2(128_127>X1.0,伺服电机维修符号位是“0”,指数位为“128”,小数位为0。
表示的是+3.1的单精度浮点。+3.1是符号位,如果将指数位和小数位分开的话,便可以表示+2U28_127)XI.55 伺服电机维修厂家,符号位是“0”,指数位是128。到这里还算挺简单的,但是到小数位就有点复杂了。
16位精度浮点的有效位为5位,精度不是很好。虽然不能像计算器那样使用,不过作为反馈控制器来说,精度是足够了。
反馈控制器的输入是位置偏差或者是速度偏差,通常状态是数值计数器的整数。反馈控制器的输出是转矩电流指令,化成整数值,这个数据的范围也是取决于电机电流检测的分析能力的。*2章中介绍的电机驱动电路中较大是1500counto所以,较终的结果中有效位数会减少,仅提高反馈控制器的计算精度的话,也没有什么意义。
16位精度浮点的计算方法
下面针对16位精度的浮点运算方法进行介绍。因为所有的计算方法都是用汇编语言写的,伺服电机维修为了让C语言也可以调用,ER0和ER1以外的寄存器都避开不用。
1.FADD16C浮点的加法运算)
程序如程序清单8.1所示。加法运算的输人数据是ER0(参数1)和ER1(参数2),运算结果保存在ER0中,在R1L中保存出错信息。
首先,确认输人数据是否为零。参数1或者参数2是0的情况下,没有必要进行加法运算,不为零的情况下就直接输出结果。
*16位,正好是从高位数下来*二个字节的位置。小数部分是从*15位开始到*0位的十六位。在4个字节当中低位分配2个字节。