中级会员
菜鸟
- 积分
- 489
- 威望
- 307
- 贡献
- 122
- 兑换币
- 0
- 注册时间
- 2011-2-27
- 在线时间
- 30 小时
|
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
unsigned int Input_Num;
//----------------------时钟初始化------------------------------//
void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{ //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
REFDV=1; //总线时钟=48/2=24MHz
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x80;
}
//--------------------通道0输入捕捉初始化-------------------//
void ECT0_Init(void)
{
TSCR2=0x06; //禁止溢出中断,分频系数64(24/64MHz)
TIOS_IOS0=0; //通道0为输入捕捉
TCTL4=0x01; //捕捉上升沿
TIE_C0I=1; //通道0输入捕捉中断允许
TSCR1=0x80; //使能定时器
}
//----------------------主函数-------------------------//
void main(void)
{
PLL_Init();
ECT0_Init();
DDRB=0XFF;
PORTB=0X00;
EnableInterrupts;
//for(;;)
{
} /* wait forever */
/* please make sure that you never leave this function */
}
//--------------------转速计算:-------------------------------//
//
//智能车转速子函数
//
//----------------------------------------------------------------//
#pragma CODE_SEG NON_BANKED //定时器通道0输入捕捉中断
void interrupt 8 Timer0_Onput(void)
{
TFLG1_C0F=1;//清中断标志位
Input_Num++;
PORTB=Input_Num;//Input_Num;
if(Input_Num>=255)
{
Input_Num=0;
}
} |
|