网站大量收购闲置独家精品文档,联系QQ:2885784924

有关舵机和直流电机的PID控制算法.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有关舵机和直流电机的PID控制算法 #include hidef.h /* common defines and macros */ #include mc9s12dg128.h /* derivative information */ #pragma LINK_INFO DERIVATIVE mc9s12dg128b /********************CLOCK**************************/ //函数名 : initial_pll(void) //功能 : 初始化时钟 //入口参数: 无 //全局变量: 无 //返回参数: 无 //说明 : 总线时钟为 24MHz ,片内系统时钟为 48MHz //说明 PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1) //说明 =2*16M*(2+1)/(1+1) //说明 =24M /***************************************************/ void initial_pll (void) { REFDV=0x01; SYNR =0x02; while (!(CRGFLG 0x08)) /*till VCO run stable*/ { } CLKSEL=0x80; /*PLL Clock Enable*/ } /**************************PORT*****************************/ //函数名 : init_port(void) //功能 : 初始化端口 PORTA PORTB PORTH //入口参数: 无 //全局变量: 无 //返回参数: 无 //说明 : PORTA PORTB 用于采集传感器的数据 PTH_PTH1为开关 /***********************************************************/ void init_port(void) { DDRB =0; /*PORTB 为输入 */ DDRA =0xF0; /*PORTA 的前4 个BIT0~BIT3 为输入*/ DDRH_DDRH1=0; /*PTH的端口1为输入*/ PTH_PTH1 =0; } /***************************SERVO*****************************/ //函数名 : init_pwm1(void) //功能 : 初始化pwm1,产生频率为 200Hz的用于控制舵机转向的信号 //入口参数: 无 //全局变量: 无 //返回参数: 无 //说明 : 无 /*************************************************************/ void init_pwm1(void) { PWME =0XFC; /*Disable PWM1*/ PWMPRCLK =0xF0; /*BUS /1*/ PWMCLK |=0X02; /*选 CLOCKA*/ PWMSCLA =0X03; /*CLOCKA=BUS /(2 *3)=4000000*/ PWMPOL |=0X03; /*PWMchannel 1 output is high at the beginning of the period*/ PWMCAE =0XFC; /* 左对齐*/ PWMCTL |=0x10; /*选 PWM1 为16位*/ PWMPER0 =0x4E; PWMPER1 =0x20; /*设定周期为 1000 再结合上面就可得到200HZ 的脉冲*/ PWMDTY0 =0x17; PWMDTY1 =0x70; /*1.5MS 默认车不转向*/ PWME_PWME1 =1; /*Enable PWM1*/ } /************************ DC MOTOR_2 **************************/ //函数名 : init_pwm2(void) //功能 : 初始化pwm2,产生频率为 1.5625KHz的用于控制电机正转的信号 //入口参数: 无 //全局变量: 无 //返回参数: 无 //说明 : 无 /****************************************************************/ void init_pwm2 (void) { PWME_PWME2 = 0; /*Disable PWM2*/ PWMCLK_PCLK2 = 0; /*选CLOCKB*/ PWMPRCLK |

文档评论(0)

Kumba + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档