This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28027: 数值转换以及运行周期的问题

Part Number: TMS320F28027
Other Parts Discussed in Thread: C2000WARE

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.在debug中发现断点数量无法超过两个?请问能否设置多个断点数量?在debug中有没有运行时间提示(我想查看代码从一个位置到另一位置的执行时间)?

4.IQ问题

IQ的_IQmpy(A,B),IQsin(A),_IQ(float F)指令周期分别是多少?