高级会员
- 积分
- 586
- 威望
- 212
- 贡献
- 114
- 兑换币
- 116
- 注册时间
- 2014-1-26
- 在线时间
- 130 小时
- 毕业学校
- 一中
|
大神求指导,我就想写个光电编码器测速代码,我是用XS128的,可是这个程序会有warning
我看不懂这个,求大神给出解决方法
///////////////////////////////////////////////////////////////////
// 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;
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|