打印
[DSP编程]

ccs4编程问题

[复制链接]
1679|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑石部队|  楼主 | 2014-3-28 14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//==============================================================
//PID.c文件
//==============================================================
#include "DSP28x_Project.h"
#include "C28x_FPU_FastRTS.h"
#include <math.h>

#include "PID.h"

//========函数定义 ===========================
//**********************************
/*
  @ Description:
  @ Param
  @ Return
*/
//**********************************
void PIDfunc_calc(PID_FUNC *p)
{       
//使用条件编译指令进行切换
#if PID_DEBUG  //在校正PID参数时,使用宏定义将PID_DEBUG设为1,从而执行以下程序
   float a0,a1,a2;
  
   //这里每次都要计算 a0、a1、a2的值
   a0 = p->Kp*(1 + p->T/p->Ti + p->Td/p->T);
   a1 = p->Kp*(1 + 2*p->Td/p->T);
   a2 = p->Kp*p->Td/p->T;
   
   //计算PID调节器的输出
   p->Output = p->LastOutput + a0*p->Ek - a1*p->Ek_1 + a2*p->Ek_2;
   
#else  //当参数校正完成后,那么得到固定的a0、a1、a2的值,使用宏定义将PID_DEBUG设为0,从而执行以下过程
    //当参数校正完成后,初始化时直接为p->a0、p->a1、p->a2赋值,省去计算过程
p->Output = p->LastOutput + p->a0*p->Ek - p->a1*p->Ek_1 + p->a2*p->Ek_2;
#endif

  //输出限幅
   if(p->Output > p->OutMax) p->Output = p->OutMax;
   if(p->Output < p->OutMin) p->Output = p->OutMin;

  //保存上一周期的值
   p->LastOutput = p->Output;
   p->Ek_1 = p->Ek;
   p->Ek_2 = p->Ek_1;               
}
//==============================================================
//End of file.
//==============================================================

undefined first referenced                                                                    
  symbol       in file                                                                        
--------- ----------------                                                                    
_main     D:\Texas Instruments\ccsv4\tools\compiler\c2000\lib\rts2800_fpu32.lib<args_main.obj>

error: unresolved symbols remain
error: errors encountered during linking; "PID.out" not built

>> Compilation failure
D:\Texas Instruments\ccsv4\utils\gmake\gmake: *** [PID.out] Error 1
D:\Texas Instruments\ccsv4\utils\gmake\gmake: Target `all' not remade because of errors.
出现以上错误,换了库文件还是不行。

相关帖子

沙发
wangch_sh| | 2014-3-28 17:25 | 只看该作者
主函数呢?

使用特权

评论回复
板凳
黑石部队|  楼主 | 2014-3-28 18:27 | 只看该作者
我只想单独运行这个程序,PID.h也加了,只看一下程序效果,不可以吗,本人菜鸟,刚学ccs。

使用特权

评论回复
地板
黑石部队|  楼主 | 2014-3-28 18:30 | 只看该作者
我试着把本段程序加到ti的其他程序教程里,没有错误,可以输出文件了,但是就是不懂,为什么不能单独运行。

使用特权

评论回复
5
zhangmangui| | 2014-3-28 23:19 | 只看该作者
PID.h换成<>试试吧  
从错误提示看怎么是main呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝