wenbaolv
楼主最近还看过
yexiaomeng
不知楼主是不是指类似与积分的意思?如果是的话,不才献丑了。
假如定义模拟量MW0,一般是16位表示模拟量足够了吧?定义积分MD2,要用32位的,16位定点小数,不然精度可能不够。
具体做法:
每隔控制周期里面:
1.MD2=MD2+MW0×系数;
2.判断MD2的上限,因为32位最高位是符号位,累计超过0x10000000就是溢出了,所以最大为0x7FFFFFFF,超过这个数就不能再累加了,也不能小于0,否则都是溢出。
不才浅见,楼主参考。
东山脚下-骑士军团
caojie0723----王者之师
我是懒人
回复内容:对:我是懒人关于编程时,要注意程序的执行周期,模拟量的单位,累积后的单位。不同值有不同的系数,还要考虑总的累加值和每个周期累加值的大小,如果差别太大,如总的达到百万了,而每个周期只有小数级,则后续就可能不累加了。 内容的回复:
如上面的那个加法器模块 他应该是每个扫描周期都执行一次累加 这感觉有点问题 单位都是没多大问题 不知说的对不???
回复内容:对:wenbaolv关于回复内容:对:yexiaomeng关于如果是累计产量的话,系数=1. 内容的回复:是不是这样的??? 内容的回复:
2.加运算完了之后还要判断是不是溢出,就是超过0x7FFFFFFF,并且大于0,如果溢出来还要做溢出处理。
这样就完整了。
sdws
谢谢楼主提供。支持一下。。
句号另起一行
难道不需要用定时器事件么?这样会每个扫描周期都加啊?这个系数就不好定义了吧,毕竟扫描周期可能不是固定的
张崇勤
完全看不懂表示!