欢迎来到天天文库
浏览记录
ID:40567402
大小:45.50 KB
页数:4页
时间:2019-08-04
《Timer模块应用实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Timer模块应用实例输入捕捉(IC)编程步骤: 初始化函数TIOS---选择工作方式为ICTCTLx---设置对应位输入捕捉的方式(x=3、4,高位是3,低位是4)TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x=1)、中断允许、预分频TIE---中断使能中断函数清除标志位---TFLG1处理函数 【例程3】//---------------------------------------------------------------------------////功能说明:利用PP3通道产生40Hz,占空比为50%的方波//利用P
2、T0采集方波的个数,并在PB口显示//程序设计:电子设计吧//设计时间:2010.01.13//---------------------------------------------------------------------------//#include/*commondefinesandmacros*/#include/*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dg128b" unsignedintInput_Num;
3、 //----------------------时钟初始化------------------------------//voidPLL_Init(void)//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1){//锁相环时钟=2*16*(2+1)/(1+1)=48MHzREFDV=1;//总线时钟=48/2=24MHzSYNR=2;while(!(CRGFLG&0x08));CLKSEL=0x80;}//--------------------通道0输入捕捉初始化-------------------//voidECT0_In
4、it(void){TSCR2=0x06;//禁止溢出中断,分频系数64(24/64MHz)TIOS_IOS0=0;//通道0为输入捕捉TCTL4=0x01;//捕捉上升沿TIE_C0I=1;//通道0输入捕捉中断允许TSCR1=0x80;//使能定时器}//---------------------PWM通道3初始化程序-------------------//voidPWM_Init(void){PWME_PWME3=0x00;//PWWisdisabled禁止PWMPRCLK=0x33;//0b00110011A=B=24M/8=3M时钟预分频寄
5、存器设置PWMSCLA=150;//SA=A/2/150=10k时钟设置PWMSCLB=150;//SB=B/2/15=10k时钟设置PWMCTL=0x00;//noconcatenation控制寄存器设置PWMCLK_PCLK3=1;//PWM3-----SB时钟源的选择PWMPOL_PPOL3=1;//Duty=HighTime极性设置PWMCAE_CAE3=0;//left-aligned对齐方式设置PWMPER3=250;//Frequency=SB/250=40周期寄存器设置PWMDTY3=125;//Dutycycle=50%占空比寄存器
6、设置PWME_PWME3=1;//enable使能}//----------------------主函数-------------------------//voidmain(void){PLL_Init();PWM_Init();ECT0_Init();DDRB=0XFF;PORTB=0X00;EnableInterrupts;for(;;){}/*waitforever*//*pleasemakesurethatyouneverleavethisfunction*/}//--------------------转速计算:------------
7、-------------------//////智能车转速子函数////----------------------------------------------------------------//#pragmaCODE_SEGNON_BANKED//定时器通道0输入捕捉中断voidinterrupt8Timer0_Onput(void){TFLG1_C0F=1;//清中断标志位Input_Num++;PORTB=Input_Num;if(Input_Num>=255){Input_Num=0;}}输出比较(OC)编程步骤: 初始化函数TIO
8、S---选择工作方式为OCTCx---通道x的OC寄存器赋初值,经过N秒后进入第一次中断TCTLx---设置
此文档下载收益归作者所有