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:
谢谢二位!