如何提升DSP28335的程序运行效率
最近在用DSP28335做控制大功率电源的模块,整个环节需要先ADC采用4路信号,再进行计算输出。计算一次花费了0.2MS时间,这个时间太长了,严重影响了PID的调节效果,如何提升程序运行效率? 这个是PID算法的程序: fKvDuk = Pid_PaMt_pst->f_KvKp * fDE1 + Pid_PaMt_pst->f_KvKi * ( Pid_PaMt_pst->f_KvError + fKvKi * Pid_PaMt_pst->f_KvError- g_fKvKiLast * Pid_PaMt_pst->f_KvError1 )+ Pid_PaMt_pst->f_KvKd * ( fDE1 - fDE2 ); //PID计算这种写法是否有可以改进的地方,怎么才能提高程序运行的效率,是采用汇编语句进行,还是从数据结构上去优化,望各位大侠指教!!! 用定点会不会快点? 关键代码放入RAM执行 823032003 发表于 2014-10-19 16:20
用定点会不会快点?
用定点的话,得把所有的数据的先翻倍放大 823032003 发表于 2014-10-19 16:20
关键代码放入RAM执行
这个倒是个好办法,还没有试过将代码放入RAM里面,得好好研究下了 28335是浮点的。
这个是个标准长度的尾巴,你能看到这个尾巴说明你的浏览器是正常的。欢迎光临我的淘宝店。 以上计算绝对花不了0.2ms,提升一下AD转换的效率。 ADC采用一次采集4次产生一次中断的方式可以降低AD的整体采集时间 做什么电源啊? 时间也太长了吧! 建议AD采用DMA方式,如果不需要数字滤波,AD采样的数据一定要存在内部RAM中。 你用的是内部的AD还是外扩的?我们外扩的做APF,一个周期是60us,0.2ms感觉你的算法很复杂啊! 823032003 发表于 2014-10-19 16:20
用定点会不会快点?
到底定点dsp快还是浮点快? tianyaxtutianya 发表于 2014-10-19 16:44
这个倒是个好办法,还没有试过将代码放入RAM里面,得好好研究下了
这样速度应该可以提升几倍,速度应该够了吧 放到RAM中运行,同时运算中不要有除法 zhandouji 发表于 2014-10-21 19:42
你用的是内部的AD还是外扩的?我们外扩的做APF,一个周期是60us,0.2ms感觉你的算法很复杂啊! ...
算法不复杂,就用了一个PID算法,还有很多错误判断,主要还有4路ADC采样,其他就是一些常规程序了 EngKing 发表于 2014-10-26 10:37
放到RAM中运行,同时运算中不要有除法
除法是不是很占用时间?能否解释下 syflash 发表于 2014-10-19 22:09
ADC采用一次采集4次产生一次中断的方式可以降低AD的整体采集时间
我已经这么做了,但是整个下来还是得几十个US用于采样 summarize 发表于 2014-10-20 00:00
做什么电源啊?
高压发生器 本帖最后由 tkloveyang 于 2015-9-27 20:40 编辑
tianyaxtutianya 发表于 2014-10-27 11:55
我已经这么做了,但是整个下来还是得几十个US用于采样
采样本身是硬件执行的,不会占用cpu的时间啊,是不是采样频率太高,你使能了采样中断,占cpu资源太多了。
看过网上测试报告,28335,计算100次乘法用时好像是14us左右。
页:
[1]