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

TMS320F28027: 使用IQ计算的时候发现不能开PWM2中断

Part Number:TMS320F28027

PWM2中断是50us一次,IQ就是简单的乘法与加法运算,且IQ程序已做验证可以正常运行

问题如下:

1.使能PWM2的时候即enablePWMCLKCounting();发现串口printf打印速度慢几乎一秒一个字符但串口输出内容是对的,并且IQ程序也慢

2.当屏蔽函数enablePWMCLKCounting();串口printf与IQ计算正常,串口打印速度非常快?

请教下这是什么问题?谢谢!

Green Deng:

额,这个还得升级一下,有回复了明天会更新哈。

,

Inver:

您好!这个英文论坛答复没?能否帮忙催下?谢谢!

,

Green Deng:

额,并没有:e2e.ti.com/…/tms320f28027-question-about-pwm-interrupt-and-iqmath

,

Inver:

IQ问题如下(F28027 时钟60MHZ):

1.单独的_IQ(A), _IQrmpy(A,B),_IQmpy( A,B),_IQdiv(A,B),_IQsin(A),_IQcos(A)

这些常用函数运行指令周期是多少?

2._IQsin(_IQmpy(_IQ(PI),_IQdiv(_IQ(1),_IQ(6))))这条语句的运行周期是多少?

,

Green Deng:

额,还是提醒一下啊,真的别让工程师去算运行周期了,计算起来很麻烦的。

我这边的建议是你自己CCS运行一下,调用一下CCS的clock功能看一下运行整个中断需要多少个clock,这样更直观,也更方便。

,

Green Deng:

然后E2E那边,建议1是提供一下串口打印的代码,2是提供一下是否有其他中断占用时间,有的话占用了多久?

,

Inver:

问题找到了 PWM2中断里面IQ运算多了 影响中断 导致大循环while里面的执行很慢或者不执行 PWM2 50us中断 给我感觉IQ运算太耗时间 没文档说的那么速度快

PWM2中断里面我就用这两句IQ运算就导致我所提问的问题出现,语句如下

spwmiqvar.sinvale = _IQsin(_IQmpy( (_IQ(spwmiqvar.spwm_cnt)+_IQ(0.75)),_IQ(SIN_B) ) ) ; spwmiqvar.sina =_IQmpy(spwmiqvar.sinvale,_IQ(spwm_factor)) ;

其中 spwmiqvar.spwm_cnt是uint16_t类型,SIN_B是宏定义浮点数0.02456,spwm_factor是浮点数float,spwmiqvar.sinvale 和spwmiqvar.sina均是_iq类型

请问IQ类型运算怎么才能提高运算速度?顺便提下 我的程序是下载到flash,main函数开头采用的MemCopy函数,实现了实现在RAM中运行代码的搬运,但未对IQ类型这种操作 ,请问IQ类型怎么实现在RAM中运行代码的搬运?

谢谢!

,

Green Deng:

要不你发布一个关于提升IQmath运行速度的新帖吧,这边会安排工程师专门给你处理或者升级一下。这个帖子我就先关闭了。

,

Inver:

好的 谢谢

,

Green Deng:

客气了,感谢一直以来对论坛的关注。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28027: 使用IQ计算的时候发现不能开PWM2中断
分享到: 更多 (0)