|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include <C8051F020.H>
6 o5 R+ i# r9 j8 F( h#include <string.h>
! i8 i4 m- L" }3 }#include <math.h>
8 A& p9 ~' s) ^3 Z+ Hllvoid PIDInit(PID " P)]:
0 V! G& E. x I+ Z8 b8 {' M% y" x( P尸定义结构体和公用体1
4 F5 W: U+ g9 t! D#define N8( B( J7 M4 k, m% K" i5 z
typedef struct PID{
6 a# P3 }0 S2 \* E5 n% hunsigned int setpoint:* s7 [; B4 h. V+ r
尸设定值1
8 ` u6 K/ i6 B) V, ^unsigned int proportion:
3 a6 C6 F/ O- j- w0 ]( X* P( BI"比例系数1
# e: J: ^; Z/ k$ eunsigned int integral;
' J' L6 F- h3 j) z7 y/ W1积分系数”1
( z/ M& N+ t- s, T hunsigned int derivative;# E4 M# x, {' b" u N
尸微分系数°1
) }: I5 D# \% Aunsigned int lasterror;) w/ m1 S7 S2 C* r/ N
「前一"拍误差"1
b* w( J5 j1 x6 Q& A+ B7 ~unsigned int preerror,
; [1 h& b$ o% A4 H U% P$ K% v( S. SP前两拍误差1
2 y( [, W8 {* W: n}PID;
6 T5 y4 ]+ x1 J: N2 k+ j4 Gunion stu{9 R X! ]( O2 j8 z1 T! i) c
unsigned int value;
& r4 \* f1 B3 Iunsigned char num[2];- @5 t# ~! m S# F4 C W
}laser;
! f) A# D6 o4 D1 O# i" ^union dat{/ q* ]) X, F* |* J4 B7 p
unsigned char dd[2]:9 F J3 o( ~; _7 f
unsigned int number,
; W4 w1 ]4 |2 W0 D0 T F}collect9 \5 ~ \ `8 ]7 \* `) ]$ D
P函数声明部分"I
3 Q. G" d, E1 |( funsigned int PIDcal(PID "pp.int tiser):
$ c$ a" q# ~; K" G# Qvoid PIDInit(PID " P)]:
. x1 t/ R! Q& R8 r% Tvoid Portinit(void);
' e+ Y4 ?; |- y- P4 J0 d& `unsigned int get ad(void); n# V* D0 K$ @
unsigned int flter valve(void).
' {! \6 Y) S; ~& ^# v7 Bvoid Delayms(void);5 j4 N! z3 p: Z0 U4 A
P"主函数部分”1
# D6 i6 P; E! }' r6 `( _void main(void)
8 w+ |' P; G' n RPID vPID;
( a" W2 b+ C; c/ s1"定义结构体变量名”1
, I& x$ _" n+ p1 v% tunsigned int verror,% T$ U9 k+ n \7 b( z9 [' V
unsigned int Error,- l* ~ b) L, S4 H6 H1 }3 L
unsigned int tempi:0 L- d, z1 X: S6 o
unsigned1 G' n" x0 I- r$ j& {- g
char LASERH,LASERL 误差的高低字节变量 “1
5 Y9 _5 B/ g6 ~/ Q9 v+ r+ N, w; l2 K) wWDTCN=Oxde;
& i' Q% I0 k9 ~) f! NWDTCN=Oxad;4 c6 ^* _* {- v6 \9 y1 X3 T
lporinit);:3 i$ S7 [& q. Y5 \+ }/ J* I7 P
PIDInit(&vPID);9 G& q% ^1 s# M: O2 J
vPID.proportion=10; P 设置PID 比例系数为10°/
1 l" M+ H- X0 a1 P4 B4 SvPID.integral=10; 1 设定PID 积分系数为10*/
0 \8 `# J# W9 b+ k; _* C6 [5 Z. ?. w$ I) j; c V
# V+ n3 E" h0 e' x. X( S |
|