📄 pi.h
字号:
/*
***********************************************************************
* For test BLDC
* 2008-1-7
***********************************************************************
*/
#ifndef __PI_H__
#define __PI_H__
#include "Spmc_typedef.h"
#include "unSPMACRO.h"
/*=============================================*/
/*=============================================*/
// write your header here
//#define KP 0.125
#define KP 0.25
#define KPP 2.45*KP
#define KPI 3.50*KP
#define KPD 1.25*KP
#define SETSPD 512
#define CAPBSIZE 2
#define limpoint MAXPWM/2
#define inclength 10
#define RADIX (((24.0E+6)*60) / (64*6*2))
//#define MAXRPM (unsigned int)((long)RADIX/5000) //187
//#define MINRPM (unsigned int)((long)RADIX/50) //1875
#define MAXRPM 3000
#define MINRPM 50
#define FILTERLEN 2
#define SHIFTDIV 1
#define HALL ((P_IOC_Data->W)&0x00e0)
/* FCK/1@24M
8000 3.0KHz
7500 3.2KHz
6000 4.0KHz
5000 4.8KHz
4800 5.0KHz
4000 6.0KHz
3200 7.5KHz
3000 8.0KHz
2500 9.6KHz
2400 10.0KHz
*/
typedef struct PID
{
unsigned int SetPoint; // 设定目标 Desired Value
unsigned int IncPoint;
unsigned int LowRange;
unsigned int HighRange;
double ProportionInc; // 比例常数 Proportional Const
double ProportionDec;
double Integral; // 积分常数 Integral Const
double Derivative; // 微分常数 Derivative Const
int LastError; // Error[-1]
int PrevError; // Error[-2]
} PID;
typedef union CONTROLSM
{
unsigned int W;
struct
{
unsigned int _startup :1;
unsigned int _direction :1;
}B;
} CONTROLSM;
void DK_motor_init();
void DK_start();
void DK_stop();
void DK_up();
void DK_down();
void DK_change();
void DK_move();
void TPM4_ISR(UInt16);
void BLDC_Motor_Normalrun(UInt8 port); //正常运行服务
void BLDC_Motor_Startup(); //爬坡启动服务
void BLDC_Motor_Actiyator();
void Speedcalc();
static int IncPIDCalc(unsigned int);
static int DecPIDCalc(unsigned int);
void IncPIDInit();
UInt8 ReadHall();
UInt8 ReadHallState();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -