[MSP430] 程序老是报错

[复制链接]
2072|11
 楼主| 像风儿一样清 发表于 2016-11-9 19:21 | 显示全部楼层 |阅读模式
本帖最后由 像风儿一样清 于 2016-11-9 19:36 编辑

下面这段程序在编译的时候总是报错,大家给看看:
#include <msp430f4250.h>
#include <stdlib.h>
#include <math.h>
#include "display.h"
typedef struct
{float setpoint;//设定目标
float presentpoint;//当前温度
float last_error;//e[-1]

float prev_error;//e[-2]
float Iout;//积分输出
float Pout;//比例输出
float Dout;//微分输出
int OUT;//总的输出
float Ek;//误差偏差
float SEk;//误差累计
float DeltEk;//连续两次偏差的偏差
int PWMcycle;//PWM的最大的控制频率

}PIDtypedef;

int pid_calc(volatile unsigned int f)
{
volatile unsigned int f1=0;
float  Kp =  300; //比例常数

float  Ki =  0.1; //积分时间常数

float  Kd =  150;  //微分时间常数
int out=0;
int a;
PID.setpoint=15;
PID.PWMcycle=511;
PID.presentpoint=0;
PID.last_error=0;
PID.prev_error=0;
PID.Iout=0;
PID.Pout=0;
PID.Dout=0;
PID.OUT=0;
PID.Ek=0;
PID.SEk=0;
PID.DeltEk=0;
f1=f;
PID.presentpoint=display1(f1);
PID.EK=PID.setpoint-PID.presentpoint;//得到当前的偏差值
PID.Pout=PID.Ek*Kp;//比例输出

PID.SEk+=PID.Ek;
PID.prev_error=PID.last_error;
PID.last_error=PID.Ek,
PID.DeltEk=PID.last_error-PID.prev_error;

PID.Iout=Ki*PID.SEk;
PID.Dout=Kd*PID.DeltEk;

out=PID.Iout+PID.Pout+PID.Dout;
if(out>=PID.PWMcycle)
   PID.OUT=511;
else if(out<=0)
   PID.OUT=0;
else
   PID.OUT=out;
a=PID.OUT;
return (a);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Meyeah 发表于 2016-11-9 19:41 | 显示全部楼层
PID未定义,把结构体定义的PIDtypedef改成PID行不行啊?
 楼主| 像风儿一样清 发表于 2016-11-9 20:03 | 显示全部楼层
Meyeah 发表于 2016-11-9 19:41
PID未定义,把结构体定义的PIDtypedef改成PID行不行啊?

不行呢
a136498491 发表于 2016-11-9 20:14 | 显示全部楼层
请问PID定义在哪
Ketose 发表于 2016-11-9 21:41 | 显示全部楼层
在pid_calc上面加一句"PIDtypedef PID;"
dirtwillfly 发表于 2016-11-10 08:10 | 显示全部楼层
提示信息很明白哦
皈依 发表于 2016-11-10 08:34 | 显示全部楼层
没有定义PID 定义一下就好了
zhuomuniao110 发表于 2016-11-10 11:28 | 显示全部楼层
楼主的结构体定义有问题,搞错了
zhuomuniao110 发表于 2016-11-10 11:29 | 显示全部楼层
struct stuff{  
        char job[20];  
        int age;  
        float height;  
};
zhuomuniao110 发表于 2016-11-10 11:30 | 显示全部楼层
应该这么定义,后面再来个定义PID神马的。。或者定义时候直接定义
//直接带变量名Huqinwei  
struct stuff{  
        char job[20];  
        int age;  
        float height;  
}Huqinwei;
zwsam 发表于 2024-3-8 09:11 | 显示全部楼层
改下定义
xionghaoyun 发表于 2024-3-8 09:24 | 显示全部楼层
扒一个别人ok的PID的工程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

183

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部