版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 湖南工业大学课程设计资料袋电气与信息工程学院(系、部)20082009学年第2学期 # #课程名称嵌入式系统指导教师职称 # #学生姓名题目成绩专业班级自061学号基于ARM微处理器和卩CLinux的嵌入式温度控制系统的设计.起止日期2009年5月25日2008年6月_5_日 # 目录清单序号材料名称资料数量备注1课程设计任务书122课程设计说明书113课程设计图纸136张456湖南工业大学课程设计任务书20082009学年度第2学期电气与信息工程学院(系、部)自动化专业061班级课程名称:嵌入式系统课程设计设计题目:基于ARM微处理器和卩CLinux的嵌入式温度控制系统的设计完成期限:自2
2、009年5月25日至2009年6月5日共2周内容及任务设计一个基于ARM微处理器和卩CLinux的嵌入式温度控制系统,要求米用PID增量算法实现对电烤箱的温度控制,并且在达到温度控制要求的同时使用4X4小键盘和触摸屏作为输入,使用了LCD、串口、网口和音频等作为输出,使得系统具有友好的人机界面。系统工作的基本原理为:温度传感器把电烤箱的温度转换成电信号经过测量电路、滤波器和放大器,输入到ARM微处理器的A/D输入端口AIN。然后ARM微处理器执行PID控制程序,根据从AIN输入的电压值,经过PID算法得出输出值。通过PWM脉宽可调功能,把控制量转换成占空比可调的脉宽,经过放大器和功率放大器后驱
3、动电阻,达到控制功能。具体设计任务如下:(1)系统总体设计;(2)系统硬件电路的设计;(3)操作系统的移植;(4)系统应用软件的设计;(5)系统软件的调试。进度安排起止日期工作内容2008.5.25课程设计任务讲解、EmbestIDE的安装和使用;2008.5.26;5.27系统总体设计;系统硬件电路的设计;2008.5.28操作系统UCLinux的安装和使用;2008.6.29;6.16.2操作系统的移植;系统应用软件的设计;2008.6.36.4;6.5系统软件的调试;课程设计报告的撰写。1.卢灵,高岩.基于S3C44B0X的温度控制系统J微计算机信息,2006,22(05-2):主011
4、3-0115要2.姜京梅.基于ARM微处理器和uC/OS-II实时操作系统的嵌入式数字温度计的设计D,参长春:吉林大学,2004考3.徐晶.嵌入式温度实验系统的PID控制D.南京:南京理工大学,2005资4.马维华.嵌入式系统原理与应用M.北京邮电大学出版社,2006料5.田泽.嵌入式系统开发与应用M.北京:北京航空航天大学出版社,20056.田泽.嵌入式系统开发与应用实验教程M.北京:北京航空航天大学出版社,2004指导教师(签字):2009年5月20日系(教研室)主任(签字): # 嵌入式系统课程设计说明书基于ARM和uCLinux的嵌入式温度控制系统的设计名级号绩起止日期:2009年5月
5、25日至2009年6月5日学生姓班学成指导教师(签字)电气与信息工程学院2009年6月5日设计说明书的主要内容1课程设计目的2课程设计要求3系统总体设计4系统硬件电路的设计5操作系统的移植6系统应用软件的设计7系统软件的调试8课程设计收获和体会 、课程设计目的所谓嵌入式系统,国内普遍认同的定义是:以应用为中心,以计算机为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。由于嵌入式系统具有体积小、性能好、功耗低、可靠性高以及面向行业应用的突出特征,目前已广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等领域,可以说嵌入式系统无所不在、无处不在
6、。本课程设计,就是通过一个基于S3C44B0X和uCLinux的PID温度控制系统的设计和调试,使学生基本熟悉ARM嵌入式系统开发基础知识,初步掌握ARM嵌入式系统有关开发工具的安装和使用,初步掌握ARM嵌入式系统的设计和调试方法。二、课程设计要求设计一个基于S3C44B0X和uCLinux的嵌入式温度控制系统,要求采用PID增量算法实现对电烤箱的温度控制,并且在达到温度控制要求的同时使用4X4小键盘和触摸屏作为输入,使用了LCD、串口、网口和音频等作为输出,使得系统具有友好的人机界面。系统工作的基本原理为:温度传感器把电烤箱的温度转换成电信号经过测量电路、滤波器和放大器,输入到S3C44B0
7、X的A/D输入端口AIN。然后S3C44B0X执行PID控制程序,根据从AIN输入的电压值,经过PID算法得出输出值。通过PWM(PulseWidthModulation)脉宽可调功能,把控制量转换成占空比可调的脉宽,经过放大器和功率放大器后驱动电阻,达到控制功能。具体设计任务如下:(1)系统总体设计;(2)系统硬件电路的设计;(3)操作系统的移植;(4)系统应用软件的设计;(5)系统软件的调试。三、系统化总体设计3.1、系统硬件选取如果仅仅是进行温度PID控制的话采用51单片机就可以满足系统设计要求了,但是这里采用ARM来实现此功能主要是要熟悉ARM的相关操作,因此在这里我们采用的系统的微处
8、理器是SAMSUNG公司的S3C44B0X,S3C44B0X是当前极具性价比、占有率最高的32位RISC处理器,它提供了丰富的内置部件,包括8KBCache,5通道定时器,RTC实时时钟,8通道10位ADC,看门狗和IIS总线接口等,很好的满足了系统设计要求。同时,由于片上集成了众多外设,使得系统的稳定性得到了很大的提高。另外,S3C44B0X提供了70多个I/O端口,极大的方便了以后的功能扩展S3C44BOX的引脚图:CWAZSTIIMCHTgw亍賈费SSMixs-5=豆筈:ILR:KqKIIS.U迂T_s枣苗EFTS3呂KT-L1ECT4-甬烹1-=T!衆Ko?SXS-S0S3一IHMTA
9、I:D*r*nUAIPUTn临gowu&hTM肌临W-TW.-T.RiFLLTMIADCSOTATXITiTn-h-ErX-E上厂base_addr=base_addr=NE2OOO_ADDR;dev-irq=NE2OOO_IRQ_VECTOR;NE2000_ADDR和NE2OOOIRQ_VECTOR分别是RTL8019AS的I/O起始地址和中断向量号,根据硬件连接改成相应的值。ne_probel函数中wordlength=2代表数据宽度为16位,改为wordlength=1代表数据宽度为8位。用blockmemory指定地址对rootfs的加载一般有两种方式,用initrd技术和blockm
10、emory。这里用blockmemory技术扌旨定romfs的地址。(makemenuconfig时选定romfs和romdisksupport)文件uClinux-dsit/linux2.4.x/driver/block/Blkmem.c中:arena=#ifdefCONFIG_ARCH_S3C44BOO,OxOCCOOOOO,-1,#endif这样只要将mmfs加载到相应的地址OxOCCOOOOO,内核就可以找到。修改完成后,编译内核(makemenconfig)时要选择支持ramdisk和blkmem。ne2OOO网卡驱动,romfs和ramfs文件系统,TCP/IP协议的项。根文件系统
11、(rootfs)uClinux源代码包里有直接生成rootfs的工具,它所采用的是romfs格式的文件系统。六、系统应用软件的设计6.1键盘程序设计#include#include#includevoidkeyboard(void)intkey;PCONF=OXO;/使得端口F全为输入PC0NG=0X557A;/使得端口G7G3全为输出,G2为外部中断,G1G2为LCD输出PUPG=OxFFH;/对端口G进行上拉while(1)if(PG4_OUT=0&PG2_EINT2=0)/判断是否有中按键发生if(PF5_IN=0)key=0;/判断对应的值,发往中断处理程序elseif(PG6_IN=
12、0)key=1;elseif(PG7_IN=0)key=2;elseif(PG8_IN=0)key=3;elseif(PG5_OUT=0&PG2_EINT2=0)if(PF5_IN=0)key=4;elseif(PG6_IN=0)key=5;elseif(PG7_IN=0)key=6;elseif(PG8_IN=0)key=7;elseif(PG6_OUT=0&PG2_EINT2=0)if(PF5_IN=0)key=8;elseif(PG6_IN=0)key=9;elseif(PG7_IN=0)key=10;elseif(PG8_IN=0)key=11;elseif(PG7_OUT=0&PG2
13、_EINT2=0)if(PF5_IN=0)key=12;elseif(PG6_IN=0)key=13;elseif(PG7_IN=0)key=14;elseif(PG8_IN=0)key=15;if(key16)key_switch(key);/对按键进行判断,并进入相应的中断程序else;6.2PWM程序设计#include#includevoidpwm(inta)/传入参数为欲定时值intfreq=100;/设定频率为100Hz,即定时时间为0.01秒inti;reg32TCFG0=0XFF;/设定分频器的预分值reg32TCFG1=0X1;/设定工作模式div二(MCLK/256/4)*
14、a/freq;/设置定时时间reg32TC0N=0X0;/关闭定时器reg32TCNTB0二DIV;/送定时值给定时器reg32TCON=0XA;/手工装定时器计数值reg32TC0N=0 x9;/开始定时器LCD程序设计#include#include#include#definelcdmem_base0 xdf0000#definelcdmem_size320*240/8#definemono_mode0 x00#defineg4_mode0 x01#defineg16_mode0 x10#definecolor_mode0 x11#definexsize320#defineysize24
15、0#defineoffsize0#defineclkval22intmain(void);voidlcDPork_lnit(void);voidlcd_lnit(void);voidlcd_on(void);voidlcd_off(void);voidlcdmem_clear(void);voidlcdmen_set(void);voidlcd_display(void);voidlcd_setxy(B32x,B32y);intmain(void)lcd_lnit();lcd_on();lcd_off();lcdmem_clear();lcdmen_set();lcd_display();vo
16、idlcDPort_lnit(void)reg32PCOND=0 x0;reg32PUPD=0 xff;reg32PCONE&=0 x3fff;reg32PC0NE=0 x4000;reg32PUPE=0 xff;voidlcd_lnit(void)reg32LCDCON仁(0|(15)|(18)|(110)|(clkval12);reg32LCDC0N2=(xsize-1)|(xsize/4-1)10)|(1021);reg32lcDPork_lnit(); 图16 #0 xf0,/度LCDSADDR1=(mono_mode2)1);reg32LCDSADDR2=(lcdmen_base&0
17、 x3fffff)1)+(xsize/16+offsize)+ysize);reg32LCDSADDR3=(xsize/16)|(offsize/16)9);reg32DITHMODE=0 x0;reg32DP1_2=0 xa5a5;reg32DP4_7=0 xba5da65;reg32DP3_5=0 xa5a5f;reg32DP2_3=0 xd6b;reg32DP5_7=0 xeb7b5ed;reg32DP3_4=0 x7dbe;reg32DP4_5=0 x7ebdf;reg32DP6_7=0 x7fdfbfe;voidlcd_on(void)reg32PDATE|=0 x80;reg32L
18、CDCON1|=0 x01;voidlcd_off(void)reg32LCDCON1&=0 xffffff7;reg32PDATE&=0 x7f;voidlcdmem_clear(void)B32*data;for(data=(B32以上为初始化程序:系统的显示程序如下:#include#include#includeconstcharHZ=0 x01,0 x00,0 x00,0 x80,/温*)lcdmem_base;data(B32*)(lcdmem_base+lcdmem_size);data+)*data=0;voidlcdmem_set(void)B32*data;for(data
19、=(B32*)lcdmem_base;data(B32*)(lcdmem_base+lcdmem_size);data+)*data=oxffffffff;voidlcd_display(void)B32*data;for(data=(B32*)lcdmem_base;data320|y240|x1|y1)return;offset=(y-1)*320/32+(x-1)/32;data=(B32*)(lcdmem_base+offset*4);offset=(x-1)%32;B*data|=1(31-offset);0 x20,0 xc0,0 x41,0 x30,0 x46,0 x0e,0 x
20、98,0 x04,0 x40,0 x00,0 x27,0 x24,0 x10,0 x07,0 xf0, #图16 #0 x3f,0 xfe,0 x22,0 x20,0 x22,0 x20,0 x2f,0 xfc,0 x22,0 x20,0 x23,0 xe0,0 x20,0 x00,0 x27,0 xf8,0 x22,0 x10,0 x21,0 x20,0 x94,0 x10,0 x54,0 x10,0 x17,0 xf0,0 x20,0 x00,0 x2f,0 xfc,0 xc9,0 x24,0 x49,0 x24,0 x49,0 x24,0 x49,0 x24,0 x49,0 x24, #
21、图16 # 图16 #Ox5f,Ox4O,Oxfe,Ox4O,OxOO,OxOO,Ox21,Ox22,Ox22,OxO4,Ox14,Ox22,Ox22,OxO4,OxO8,OxfO,/设OxO8,OxOO,OxOf,Ox31,Ox1O,Ox21,Ox1O,Oxfc,/复OxO1,Ox1O,OxO1,Ox1O,Ox1O,OxOO,Ox2f,Oxf8,Oxe2,OxOe,Ox25,Oxf8,Ox48,OxO8,OxOf,Oxf8,Ox21,OxO8,Ox21,OxO8,OxO8,OxO8,OxOf,Oxf8,Ox2O,Ox9O,Ox2O,Ox9O,OxO4,OxOO,OxO7,Oxf8,Ox28,
22、Ox6O,Ox3O,Ox9O,OxOc,Ox1O,Ox12,Ox6O,Ox23,OxOe,OxOc,OxO4,Ox21,Ox8O,OxO6,Ox6O,OxO2,OxOO,OxO1,Ox18,Ox1e,Ox6O,OxO4,OxOO,/定OxO9,OxOO,OxOc,Ox3f,Oxfe,Ox2O,OxO4,OxcO,/位Ox4O,OxO8,Ox1f,OxfO,Ox1O,Ox4O,Ox17,Oxfc,OxO1,OxOO,Ox11,OxOO,Ox2O,OxOO,Ox34,Ox1O,Ox11,OxOO,Ox11,OxfO,Ox52,Ox18,Ox52,Ox1O,Ox11,OxOO,Ox29,OxOO,O
23、x91,Ox1O,Ox11,Ox2O,Ox25,OxOO,Ox43,OxOO,Ox11,Ox2O,Ox1O,Ox2O,Ox81,Oxfc,OxOO,OxOO,Ox1O,Ox4O,Ox1f,Oxfe,OxOO,Ox8O,OxOO,Ox1O,OxOO,OxOO,OxOO,Oxfc,/确OxOO,OxOO,OxOO,OxOO,Ox7c,Ox88,Ox11,Ox1O,/.Ox13,Oxfc,Ox21,Ox24,OxOO,OxOO,OxOO,OxOO,Ox3d,Ox24,Ox65,Oxfc,OxOO,OxOO,OxOO,OxOO,Oxa5,Ox24,Ox25,Ox24,Ox6O,Ox6O,OxOO,Ox
24、OO,Ox25,Oxfc,Ox3d,Ox24,OxOO,OxOO,OxOO,Ox22,Ox24,Ox22,Ox24,Ox18,/OOxO4,Ox14,OxO8,OxO8,Ox24,Ox42,Ox42,Ox42,OxOO,OxOO,Oxff,Ox42,Ox42,Ox42,Ox42,Ox8O,/取Ox24,Ox18,OxOO,OxOO,Ox22,Ox7e,Ox22,Ox44,OxOO,OxOO,OxOO,Ox3e,Ox44,Ox22,Ox44,Ox1O,/1Ox22,Ox44,Ox3e,Ox28,Ox7O,Ox1O,Ox1O,Ox1O,Ox22,Ox28,Ox22,Ox9O,Ox1O,Ox1O,O
25、x1O,Ox1O,Ox27,Ox1O,Ox3a,Ox28,Ox1O,Ox7c,OxOO,OxOO,Oxc2,Ox46,OxO2,Ox84,OxOO,OxOO,OxOO,OxO2,OxOO,OxO2,OxOO,Ox3c,/2Ox2O,Ox4O,Ox1O,Ox42,Ox42,Ox42,OxO4,Ox4O,/消OxO4,OxO8,Ox1O,Ox2O,Ox12,Ox44,Ox81,Ox48,Ox42,Ox7e,OxOO,OxOO,Ox49,Ox5O,Ox4b,Oxfc,OxOO,OxOO,OxOO,Ox12,OxO4,Ox12,OxO4,Ox3c,/3Ox23,Oxfc,Ox22,OxO4,Ox42,
26、Ox42,OxO4,Ox18,Oxe2,OxO4,Ox23,Oxfc,OxO4,OxO2,OxO2,Ox42,0 x44,0 x00,0 x38,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x18,/90 x04,/40 x0c,0 x14,0 x24,0 x24,0 x24,0 x42,0 x42,0 x42,0 x26,0 x1a,0 x02,0 x02,0 x44,0 x44,0 x7e,0 x04,0 x24,0 x38,0 x00,0 x000 x04,0 x1e,0 x00,0 x00,voiddisplay(intx,inty,intz
27、)/x,y0 x00,0 x00,0 x00,为显示的LCD的坐标值,z为对应的汉字在0 x7e,/50 x40,0 x40,0 x40,0 x58,HZ中的序号地址0 x64,0 x02,0 x02,0 x42,inti,j;0 x44,0 x38,0 x00,0 x00,intk=O;/k为显示计数对应的,address0 x00,0 x00,0 x00,为显存对应的地址0 x1c,/60 x24,0 x40,0 x40,0 x58,longintaddress;address=0 x0023;/为显存初始地址入口0 x64,0 x42,0 x42,0 x42,for(i=O;i16;i+
28、)0 x24,0 x18,0 x00,0 x00,for(j=0;j2;j+)0 x00,0 x00,0 x00,0 x7e,/70 x44,0 x44,0 x08,0 x08,address=x+i*8+y+20*j;address=HZz+k;0 x10,0 x10,0 x10,0 x10,if(k31)0 x10,0 x10,0 x00,0 x00,k+;0 x00,0 x00,0 x00,else0 x3c,/80 x42,0 x42,0 x42,0 x24,k=0;0 x18,0 x24,0 x42,0 x42,0 x42,0 x3c,0 x00,0 x00,voidLCD(void
29、)/具体信息显示程序display(34,24,0 x0);/显示温display(68,24,0 x20);/度display(200,24,0 x40);/设display(240,24,0 x60);/定display(34,184,0 x200);/显示数字9触摸屏程序设计对触摸屏AD采样数据优化处理的函数代码如下:intADC_44B0(unsignedcharchan)/根据chan指定的通道号进行AD转换intindex,i,temp;intyy10;/AD转换时钟预除率=MCLK/(2*(15+1)*16)rADCPSR=0 xF;OSTimeDly(2);for(index=
30、0;index6;index+)rADCCON=(0 x1|(chan0;i-)/转换值排序if(yyiyyi-1)音频处理程序初始化IIS接口:VoidIISInit(void)temp=yyi;/yyi与yyi-1交换yyi=yyi-1;yyi-1=temp;returnyy3;Rpcone=(Rpcone&0 xffff)+(216);/PE:CODECLKIDMADone=0;Init1341();/*初始化PhilipsUDA的芯片1341*/VoidInit1341()Rpcona=0 x1ff;/PA9连接L3DATA,输出(L3D=L3DATA)Rpconb=0X7cf;/PG
31、5连接L3MODE(L3M=L3MODE),PG4接L3CRpdatb=L3M/L3C;/L3M为高电平,L3C为高电平,传输起始条件/*L3接口操作*/_WrL3Addr(0 x14+2);/status(000101xx+10)_WrL3Data(0 x60,0);/0,1,10,000,0reset,256fs,noDcfilter,iis_WrL3Addr(0 x14+2);/status(000101xx+10)_WrL3Data(0 x20,0);/0,0,10,000,0reset,256fs,noDcfilter,iis_WrL3Addr(0 x14+2);/status(00
32、0101xx+10)_WrL3Data(0 x81,0);/1,0,0,0,0,0,11OGS=0,IGS=0,ADC_NI,DAC_NI,/snglspeed,AonDon_WrL3Addr(0 x14+02);/DATA0(000101xx+00) 图16 #_WrL3Data(0 x0A,0,0);A/D转化程序#include#includeuint8send_buf16;voidDelayNS(uint32dly)uint32i;for(;dly0;dly-)for(i=0;i6)&0 x3FF;/提取AD转换值reg32ADCDAT=reg32ADCDAT*33OO/1O24;/数
33、值转换sprintf(str,VIN1=%dmVr,reg32ADCDAT);uARTOSendStr(str);DelayNS(1OO);reg32ADCCON=(reg32ADCCON&OxOOFFFFOO)|OxO2|(124);/设置通道2,并进行第一次转换while(ADDR&Ox8OOOOOOO)=O);/等待转换结束reg32ADCCON=reg32ADCCON|(124);/再次启运转换while(ADDR&Ox8OOOOOOO)=O);/等待转换结束reg32ADCDAT=ADDR;/读取ADC结果reg32ADCDAT=(reg32ADCDAT6)&0 x3FF;/提取AD
34、转换值reg32ADCDAT=reg32ADCDAT*33OO/1O24;/数值转换sprintf(str,VIN2=%dmVr,reg32ADCDAT);uARTOSendStr(str); 图16 #DelayNS(100);存储器配置程序LDRR0,=SMRDATALDMIAR0,R1-R13LDRRO,二0X01C80000/配置总线宽度与等待控制寄存器BWCON的地址SMRDATA;DCD0X22221210/设置BWSCON初始值,选择总线宽度,BANK1和BANK2为6位,其余32位禁止等待DCD0X00000600/BANK0初始化;DCD0X00000700/BANK1初始化
35、DCD0X00000700/BANK2初始化DCD0X00000700/BANK3初始化DCD0X00000700/BANK4初始化DCD0X00000700/BANK5初始化DCD0X00010000/BANK6初始化DCD0X00018000/BANK7初始化DCD0X00860459/刷新控制寄存器DCD0X0/BANK容量寄存器,确定为32MDCD0X20/SDRAM模式寄存器MRSR6(CL=2)DCD0X20/SDRAM模式寄存器MRSR6(CL=2)USB驱动程序初始化程序#include#include#defineMCNTRL0X100/主控寄存器#defineSRST0X0
36、1/软件复位#defineVGE0X04/允许电压调节#defineINT_H_P0X80/高电平中断,上拉#defineCODIS0X80/禁止时钟输出#defineFAR0X04/功能地址寄存器#defineAD_EN0X80/地址使能#defineNAKMSK0X0F/NAK屏蔽寄存器#defineTXMSK0 x0B/TX屏蔽寄存器#defineRXMSK0X0D/RX屏蔽寄存器#defineALTMSK0 x09/ALT屏蔽寄存器#defineMAMSK0X07/Main屏蔽奇存器#defineWARN0X01/设置警告寄存器#defineALT0X02/交替事件#defineTX_
37、EV0X04/T发送事件#defineFRAME0X08/SOF包接受#defineNAK0X10/NAK事件#defineULD0X20/解锁检测#defineRX_EV0 x40/接受事件#defineINTR_E0X80/主中断允许)对USN9603的写控制参考程序#includeUnsignedcharread_usb(unsignedcharaddr)(*(volatileunsignedchar*)0 x080000002)=addr;Return(*(volatileunsignedchar*)0 x08000000;voidbitset(unsignedcharaddr,uns
38、ignedcharmask)write_usb(addr,(read_usb(addr)|(mask);/设置RMW为voidbitclr(unsignedcharaddr,unsignedcharmask)write_usb(addr,(read_usb(addr)&(mask);/清RMW位初始化USBN9603voidInit_9603(void)status_GETDESC=0;usb_cfg=0;/软复位,设置中断write_usb(MCNTRL,SRST);while(read_usb(MCNTRL)&SRST);write_usb(MCNTRL,VGE_INI_H_P);/对时钟
39、发生器初始化write_usb(CCONF,CODIS+OXOC);/设置默认地址,仅允许FPCOEP0write_usb(FAR,AD_EN+O);/FAR为功能地址寄存器write_usb(EPCO,OXOO);/中断屏蔽位设定write_usb(NAKMSK,NAK_O0);write_usb(TXMSK,TXFIF00+TXFIF01+TXFIF02+TXFIF03);/发送事件write_usb(RXMSK,RXFIFOO+RXFIFOl+RXFIFO2+RXFIFO3);/接受事件write_usb(ALTMSK,SD3+RESET_A);/ALT事件write_usb(MAMSK
40、,INTR_E+RX_EV+NAK+TX_EV+ALT);/接受器允许并启动操作FLUSHTX0;/清楚TX0,禁止TX0write_usb(RXCO,RX_EN);/接受器允许write_usb(NFSR,OPR_ST);/启动操作write_usb(MCNTRL,VGE_INT_L_P+NAT);/设置节点连接PID控制部分#include#includePIDFunctionThePID(比例、积分、微分)functionisusedinmainlycontrolapplications.PIDCalcperformsoneiterationofthePIDalgorithm.While
41、thePIDfunctionworks,mainisjustadummyprogramshowingatypicalusage.=*/typedefstructPIDdoubleSetPoint;/设定目标DesiredvaluedoubleProportion;/比例常数ProportionalConstdoubleIntegral;/积分常数IntegralConstdoubleDerivative;/微分常数DerivativeConstdoubleLastError;/Error-1doublePrevError;/Error-2doubleSumError;/SumsofErrorsPID;/*PID计算部分*/doublePIDCalc(PID*pp,doubleNextPoint)doubledError,Error;Error=pp-SetPoint-NextPoint;/偏差pp-SumError+=Error;/积分dError=pp-LastError-pp-PrevError;/当前微分pp-PrevError=pp-LastError;pp-LastError=Error;return(pp-Proportion*Error/比例项+pp-Integral
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026)执业药师中医含解析及答案
- 心理感恩心态深耕 发现生活点滴美好课件
- 黑龙江哈尔滨市德强学校2026-2027学年九年级上学期9月综合素养测评化学试题(含答案)
- 餐厨垃圾收运环节鼠蝇蟑治理课件
- 2026年智能电商平台运营工程师资格考试试题及答案
- 2026年小儿外科三基三严培训考核计划
- 2026年药品经营突发事件应急处置培训试卷(含答案)
- 2026年无人机操控员高级理论模拟试题库及答案
- 2026年食源性疾病监测上报考试试卷试题及答案
- 2026年中药汤剂质量管控三基培训考核计划
- 2026高考数学复习微专题:75.立体几何与解析几何综合问题的三种常见类型
- 建筑工程技术课程
- 量力而行议论文
- 化工园区的应急管理体系构建与风险防控能力提升毕业答辩
- 《心灯录》完整版
- 2026届新高考英语热点冲刺复习:定语从句
- 船舶修造基地项目吨浮船坞改建工程可行性研究报告
- 康复护理关节活动度训练被动活动课件
- 《盗窃案件的侦查》课件
- 小学生英语规范书写课件
- 八年级物理第一次月考卷(考试版A4)(北京地区人教版2024第1~3章)
评论
0/150
提交评论