TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 EPWM 比较器更新,强制类型转换 问题

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

Jones Chen:

应该是

Uint16

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

yi wang:

回复 Jones Chen:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

这样写可以么, 好不好呢?就是让它自己去自动强制类型转换?

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

yi wang:

回复 Xiao Dong:

IQ格式不是定点的吗 ,28335也要调用IQ库么,我程序里干脆没包含这个库啊,只为这里的更新包含一个库有点不值得啊觉得。

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

yi wang:

回复 Jones Chen:

谢谢二位!

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

yi wang:

回复 Jones Chen:

谢谢二位!

DSP28335 在更新EPWM 比较寄存器的时候,要把算完的小数 乘以 PWM周期,然后送给 CMPA 这里 是不是要强类型转换成整数? 是用int16  还是 Uint16啊???

下面是更新EPWM 比较寄存器,这样写对不对啊???????

int32 Tmp_a;    

      Tmp_a=p->PeriodMax*(p->MfuncC1);

       EPwm1Regs.CMPA.half.CMPA = (int16)Tmp_a;    

       EPwm1Regs.CMPB=(int16)Tmp_a;

其中 MfuncC1 存得是调制信号,正常时应该是0-1之间的数,不过也不排除有些时候可能会在0-1之外一点点。

或者在更新CMPA比较值的时候是否可以直接写:

EPwm1Regs.CMPA.half.CMPA =p->PeriodMax*(p->MfuncC1);

它是否会自己自动进行数据类型转换啊?

怎样写好呢????

谢谢!

yi wang:

回复 Jones Chen:

谢谢二位!

赞(0)
未经允许不得转载:TI中文支持网 » 28335 EPWM 比较器更新,强制类型转换 问题
分享到: 更多 (0)