KEIL5文件主要包含Core文件夹,Drivers文件夹
1.CORE文件夹
用户目标功能实现文件,包含Src Inc
1.1.Src
.c文件
- 全局变量定义
- 功能函数定义
//------------------头文件包含
#include "pid.h"
//-----------------定义结构体全局变量
PID PosionPID;
//-----------------功能函数定义
void PID_param_init()
{
float pid_temp[3];
PosionPID.target_val=3600;
PosionPID.output_val=0.0;
PosionPID.Error=0.0;
PosionPID.LastError=0.0;
PosionPID.integral=0.0;
PosionPID.Kp = 10;
PosionPID.Ki = 0.5;
PosionPID.Kd = 0.8;
pid_temp[0] = PosionPID.Kp;
pid_temp[1] = PosionPID.Ki;
pid_temp[2] = PosionPID.Kd;
set_computer_value(SEND_P_I_D_CMD, CURVES_CH3, pid_temp, 3);
}
1.1.Inc
.h头文件
- 宏定义
- 结构体变量定义
- 用到的外部变量,结构体声明 extern
- 功能函数声明
#ifndef __PID_H
#define __PID_H
//---------------------包含项目用到的头文件
#include "sys.h"
//-----------------------一个宏定义?
#define PID_ASSISTANT_EN (1)
//-----------------------定义结构体变量PID
typedef struct
{
float target_val;
float Error;
float LastError;
float PrevError;
float Kp,Ki,Kd;
float integral;
float output_val;
}PID;
//------------------------包含用到的全局变量
extern PID PosionPID;
//------------------------对应.c文件函数声明
void PID_param_init(void);
void set_PID_target(float temp_val);
float get_pid_target(PID *pid);
void set_PID(float p, float i, float d);
float PosionPID_realize(PID *pid, float actual_val);
#endif