你好!
希望大家都做得好。 得到了一些困惑、我非常希望能够为我的代码清除!
我现在已经在代码中的某个点对 CLA 进行了编码、以便将预计算2p2z 控制器的控制工作返回到 CPU。
我的理解是、调用 DCL 函数会返回浮点值(假设、因为钳位限制始终设置为浮点值!)
通过将该值放入 CMPA 寄存器、获取该值然后使用调制 PWM 寄存器的最佳方法是什么? 我认为这些寄存器采用 uint_16T、是否有有效的方法将浮点值转换为无符号16位整数?
在所有示例中、一组数组以 浮点形式填充了两者之间的完整、部分和差异结果。
为什么所有 DCL 示例中的数据长度都很大、例如1601? 对于2P2Z 结果、您只需要存储之前结果中的3-4个结果、这难道不是事实吗? 为什么定义的数组如此大、无法计算下一个结果?
计算完整和部分结果后、程序将计算两者之间的"差异"。 这种"差值"是否与控制结果相同、因此我们应该使用"差值"数组来计算下一个占空比、频率或相位?
最后、如果我们确实需要如此大的阵列、我们使用其中的哪一部分来计算 PWM 信号的实际频率、占空比或相位? 如果数组中有1601个数据点、我们是否始终使用最新的结果来调制 PWM 寄存器?
提前感谢、
Joel