智能车制作

标题: 关于光电编码器的代码有warning [打印本页]

作者: ℡軒丶_Hins|    时间: 2014-7-29 23:16
标题: 关于光电编码器的代码有warning
大神求指导,我就想写个光电编码器测速代码,我是用XS128的,可是这个程序会有warning
[attach]67163[/attach]
我看不懂这个,求大神给出解决方法

///////////////////////////////////////////////////////////////////
// 16位累加器测速程序(PACB累加器),PT0口输入脉冲
//每次记录脉冲时间可修改宏:TIME_INTER
//author:whut_wj
///////////////////////////////////////////////////////////////////
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

#define TIME_INTER 1000  //1000个ms=1s
unsigned int Get_pulse;


void Start_PLL(void)   //busCLK=32M
{
  REFDV=0x01;          // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
  SYNR=0x03;                 //        =2*16M*3/2=64M
  asm{
    BRCLR CRGFLG,#$08,*
    BSET CLKSEL,#$80
    }                                                                                                          
}


void PACBInit()
{
  TCTL4 = 0X02;       //下降沿捕捉脉冲
  PBCTL = 0x40;       //级联两个8位累加器(PAC0和PAC1)
  ICPAR = 0X03;       //使能累加器
  PACN10 = 0X0000;
}


void MDCInit(void)
{
  MCCTL = MCCTL&0Xfb; //模数计数器禁止运行
  MCCTL = 0Xe3;       //允许中断,模数计数方式
                      //返回时重新加载所用的常数,分频常数为16
  MCCTL = MCCTL|0X04; //模数计数器使能
  MCCNT = 2000; //(1/32M)*16*2000= 1ms
  MCCTL = MCCTL|0X08 ; //把模数常数寄存器的值加载到模数计数器FLMC;
}



void main(void)
{
  DisableInterrupts;
  Start_PLL();
  PACBInit();
  MDCInit();
  EnableInterrupts;

  for(;;)
   {

   }
}


#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 26 MDC_ISR(void)
{
  static unsigned int number_count;
  MCFLG = 0x80;
  number_count ++;

  if( number_count==TIME_INTER)        //1秒取一次
    {
    number_count=0;
    Get_pulse = PACN10;
    PACN10 = 0X0000;

    }
}








欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2