|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include <C8051F020.H>, r& f8 z; z f& {% ?+ }
#include <string.h>
; B3 x/ }! E! U. e) h2 G#include <math.h>
9 {0 E, s! u* X7 L3 [llvoid PIDInit(PID " P)]: N+ Z; M9 v& `
尸定义结构体和公用体1) P v$ G) R3 ]7 u( `& b
#define N8
, L, r7 u% Y8 {& u8 u0 A! Btypedef struct PID{
0 B3 q9 B, W( |) P- @7 C7 ~7 Gunsigned int setpoint:
% ` t, x1 T5 C; d6 o尸设定值1
; {5 A1 H0 H' N* E$ M, J! Lunsigned int proportion:. r9 ]0 r( B1 ]- G
I"比例系数1
& B3 B- N' _. v' L2 g; r. Tunsigned int integral;
/ u P7 L8 |, e$ N/ m h2 h/ f6 i, J1积分系数”1& i0 ]2 B9 L; q2 o! i
unsigned int derivative;
. G( ^; G- y8 X# N& a# D5 `& A+ C尸微分系数°1
" ?& U2 m8 F7 q; q& iunsigned int lasterror;$ F+ k- S4 D+ B
「前一"拍误差"14 U* Y/ S) a3 `
unsigned int preerror,
8 T, ?; C& G- Y, t; |+ m: j6 BP前两拍误差19 ~4 B* ~- [8 L* R
}PID;
& |: L" T5 G- M. D6 d) b+ q6 r: P; Sunion stu{
, e2 V$ D8 _3 e" vunsigned int value;
/ }, Z5 K! m' s; [" m* |' N0 a; M4 ]unsigned char num[2];; }* ?2 {. Z9 s5 f9 q
}laser;7 d8 ?, m7 d# p/ s
union dat{. s; m. Y' l" y8 g
unsigned char dd[2]:2 A: t; i' o l6 G I6 |2 V
unsigned int number,& I# C8 C% j( V0 q6 K. j* m4 `
}collect/ |% N" \# [$ ]8 o
P函数声明部分"I2 S7 s. i1 k6 ^! I2 W* a) n, a
unsigned int PIDcal(PID "pp.int tiser):0 ]' b9 P+ M s
void PIDInit(PID " P)]:
) \7 m3 D. e, b9 v8 o% a& v( i4 Lvoid Portinit(void);9 z$ w, q. E& L" r: K! c$ M- O. t+ _
unsigned int get ad(void);5 P, V3 I; W8 a# I$ `9 O8 l; N
unsigned int flter valve(void).& C5 k4 z1 W, T0 V O8 L
void Delayms(void);
- ]' r1 K" y; Z# P3 {P"主函数部分”19 F5 ~1 M+ X( }; Q( Q( h8 w, b' x
void main(void)
9 w7 W! @5 I, ]) u: r* M) m& KPID vPID;: ] q `6 }; [2 N- i0 g
1"定义结构体变量名”1: v" ^ ]' q9 [% G- N
unsigned int verror,
2 m2 I* Y9 T% @% K( \unsigned int Error,
; `, [$ g8 x. y: W- L' c! E( [! ^unsigned int tempi:
4 `* B: F8 j! A, r4 q) sunsigned* b& L. X3 C! u K/ N0 `/ I9 M1 a- l
char LASERH,LASERL 误差的高低字节变量 “1
+ F9 q7 e# P) O+ }WDTCN=Oxde;0 L8 x3 n# {& P$ J4 v7 E1 V3 `
WDTCN=Oxad;
) G0 P/ g$ Q2 {* Ulporinit);:
6 [; _ W% m, F0 f' t8 sPIDInit(&vPID);" h( a! L3 y1 g+ | a$ w
vPID.proportion=10; P 设置PID 比例系数为10°/
4 G) a$ h3 r. AvPID.integral=10; 1 设定PID 积分系数为10*/
; H5 U8 b9 b; X' t5 e) ^. Q) y' u' m
' f) m+ C$ a" Z$ u8 |2 u( u |
|