|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include <C8051F020.H>' q; T0 i( `7 ]9 l$ d3 R) N2 T
#include <string.h>2 u2 f& Z \+ m: F( _6 [5 y( }
#include <math.h>- M1 N& A( L( m% L
llvoid PIDInit(PID " P)]:
! o) F" x/ F9 z( S4 d- {; x) x尸定义结构体和公用体1
8 L4 m1 G% t3 S- B8 ^0 ]5 V#define N8
4 p# T1 W' z8 z, K' b# D) N$ u3 i+ G1 Xtypedef struct PID{
9 i; o2 m' p4 g1 s6 iunsigned int setpoint:2 z1 F6 f$ g& n! Z
尸设定值1
: R% O0 j# x0 bunsigned int proportion:
; o+ F7 K& S/ @/ I- RI"比例系数1. {0 B+ L$ H/ R% I$ @' b
unsigned int integral;. K# t# d7 H0 R1 G9 c- p
1积分系数”1
5 i( w/ i; G2 a6 Kunsigned int derivative;
' G6 T n# v: T' U) b: I尸微分系数°1
( n+ I) D( E i& _# W. {' F. z8 runsigned int lasterror;
8 j2 m) U a2 b7 N2 v「前一"拍误差"1% w0 \! R x6 B* O+ s" L2 Y i9 E% d+ Y
unsigned int preerror,8 b) N7 o- \; e1 E
P前两拍误差1
- G* v0 g/ a6 \( U}PID;, \/ F, M2 o# ^( p% O
union stu{/ a9 { s1 h( J. R1 H
unsigned int value;
5 B3 w, H9 z) q) X5 n' |unsigned char num[2];
. H0 P; N: D, B}laser;
$ `8 w9 O) v% r* j- U2 x! Hunion dat{
1 |/ A4 b5 D2 V2 nunsigned char dd[2]:
2 a" h/ u; D. Z+ j+ T6 punsigned int number,; H3 |! ?8 d* C
}collect0 [+ g, p1 _, @: N4 d9 J
P函数声明部分"I
$ h! }1 L* ]: ounsigned int PIDcal(PID "pp.int tiser):$ k# N: P! a) L4 U' l& N; t7 A
void PIDInit(PID " P)]:/ z6 ?+ j& Q+ H
void Portinit(void);0 Q9 N8 C p4 R- D! D% |
unsigned int get ad(void);! l9 r8 E. m+ k4 ^
unsigned int flter valve(void).
0 O: a6 `* k# s( O1 Uvoid Delayms(void);
( r; U8 h# g- W+ \& DP"主函数部分”1! V/ m4 @& ]( k3 Z
void main(void)
, g! K) o' z7 q3 h; w yPID vPID;
0 `: I+ D* v% A0 n# N1"定义结构体变量名”1 y! {$ K: ^( @
unsigned int verror,. d$ X; f# A5 Z& b& h* L
unsigned int Error,
O+ M" V6 I- S5 n* |* ~4 Y" Xunsigned int tempi:
3 g3 ]$ G( Z1 ?3 `5 _4 c$ Junsigned5 c$ B+ K M0 c* e i2 t
char LASERH,LASERL 误差的高低字节变量 “1) V/ U4 |# x- j% ?2 L: L& E
WDTCN=Oxde;
" N6 v3 ~/ j K7 [9 X! d* |& Q+ z# PWDTCN=Oxad;* h% D' b/ Z# T1 x- P
lporinit);:
: t7 t: G) E j" x) OPIDInit(&vPID);& Y! M; o6 f5 w/ W
vPID.proportion=10; P 设置PID 比例系数为10°/! D3 t- V: w u9 k+ C
vPID.integral=10; 1 设定PID 积分系数为10*/
- V% u9 _) T/ l) e5 \( F4 P4 }
+ l- o. \- O3 [7 I4 K: q/ \( \+ W9 U# Z; g; G
|
|