基于labview的智能小车控制平台(编辑修改稿)内容摘要:

//Main module of MKCAR 摩垦智卡 include /* mon defines and macros */ include /* derivative information */ include include include pragma LINK_INFO DERIVATIVE mc9s12xs128b ///////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////// system amp。 inits 系统及初始化 ////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// define SYNE_SETTING 4 define REFDV_SEETTING 1 // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1) busclk=40M define delay {_asm nop。 } define ENSPDTEST TIE_C2I = 1。 define DISSPDTEST TIE_C2I = 0。 define ENPID PITINTE_PINTE0=1。 define DISPID PITINTE_PINTE0=0。 define MOTORFORWORD {PWME_PWME3=0。 PWMCNT01=0。 PWME_PWME1=1。 } define MOTORBACK {PWME_PWME1=0。 PWMCNT23=0。 PWME_PWME3=1。 } define CARSTOP PWME=0。 define MAXSPEED 128 unsigned int Receive=0。 unsigned int ReceiveFlag=0。 float speed,Throttlespeed,Brakespeed。 unsigned char Cardata[5],PreCartata[5]。 void init_sys(byte p1,byte p2) { init_CRG(p1,p2)。 init_interupt()。 init_port()。 init_motor()。 init_servo()。 init_PIT()。 } /////////////////////////////////////////////////////////////////////////////// ///////////////////////////// user i/o 串行通信函数,用于调试 ////////////// /////////////////////////////////////////////////////////////////////////////// char strDisp[80]=hello\n。 /************串口初始化 *************/ void SciInit() 17 { unsigned int bd。 bd=(unsigned int)((80000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/)。 bd++。 SCI0BDH = (unsigned char)((bd8)amp。 0x00ff)。 SCI0BDL = (unsigned char)(bdamp。 0xff)。 //(unsigned char)((128000000UL /* OSC freq */ / 2) / 19200 /* baud rate */ / 16 /*factor*/)。 SCI0CR1=0。 /*normal,no parity*/ SCI0CR2=0X2C。 /*RIE=1,TE=1,RE=1*/ //SCI0CR2=0X08。 } /******发射端程序 单字节发送 ********/ void SciSend(unsigned char text) { // unsigned char a。 //temp=SCI0SR1。 /*clear flag*/ /* for(。 ) { a=SCI0SR1。 if( (aamp。 0x40)==0x40 ) break。 } */ while (!(SCI0SR1amp。 0x80))。 /* wait for output buffer empty */ SCI0DRL=text。 } /********接受部分 (unsigned char 型数据 )************/ char SciRead(void) { //unsigned char temp。 unsigned char result。 //temp=SCI0SR1。 //clear flag while(!(SCI0SR1amp。 0x20))。 result=SCI0DRL。 return result。 } /*************************************wsl*************************************/ void mkTasks(void) { byte iSpdCar=1。 static int bDir=1。 float recd_T_speed,recd_B_speed。 //接收到的速度值 DisableInterrupts。 init_sys(SYNE_SETTING,REFDV_SEETTING)。 SciInit()。 EnableInterrupts。 18 StartSpeedTest()。 // speed pid action for(。 ) { while(ReceiveFlag) { ReceiveFlag=0。 ///////////////////////// 前进和后退控制 /////////////// if(Cardata[0]!=PreCartata[0]) { if (((unsigned int)Cardata[0])==0x30) {MOTORFORWORD。 } else {MOTORBACK。 } } /////////////////////////油门和刹车控制 ////////////////// Throttlespeed=(float)((Cardata[1]*10)/MAXSPEED)*()。 SetCarSpeed(Throttlespeed)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。