Timer模块应用实例

Timer模块应用实例

ID:40567402

大小:45.50 KB

页数:4页

时间:2019-08-04

Timer模块应用实例_第1页
Timer模块应用实例_第2页
Timer模块应用实例_第3页
Timer模块应用实例_第4页
资源描述:

《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---设置

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。