[MSP430]

程序老是报错

[复制链接]
1051|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);
}
(0W7ZS{SH[}_076$~F%}H01.png
@9EM(928S2C_YZHDG2BBAZU.png
E0H2(X0C6E(X]`00]JQBZ[R.png
F91PZNLM_`{X22E`9D9U.png

相关帖子

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

粉丝