Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
大家好、
以下是客户可能需要您帮助的几个问题:
1) 1) 程序中需要乘法、但乘法的结果超出原始变量的范围。 如何转换它?
volatile uint16_t inV_VbusInst;
volatile uint16_t inV_VbusAvg;
上面是结构 Inv_var.
if (inv_var.inv_VbusInst>15){
inv_var.inv_VbusAvg =(uint16_t)(((uint32_t)inv_var.inv_VbusInst-10 *62)>>8);
}
计算语句如下:
inv_var.inv_VbusAvg=(inv_var.inv_VbusInst-10 *62>>8;
当 inv_var.inv_VbusInst=2000时,(inv_var.inv_VbusInst-10)*6结果大于 uint16_t 数据65536的最大值。 是 UINT16_t 类型的乘法的结果、还是保持不变?
2) (uint32_t) inv_var.inv_VbusInst
因为 inv_var.inv_VbusInst 是 uint16_t 类型。 计算中需要多少个指令周期?
3) 3)在调试期间、它发现断点的数量不能超过2个。 是否可以设置多个断点? 调试中是否有运行时提示? (客户希望查看代码何时从一个位置执行到另一个位置)
4) 4) IQ 的_IQmpy (A、B)、IQsin (A)、_IQ (float F)指令周期分别是多少?
您可以帮助检查此案例吗? 谢谢。
此致、
樱桃