足球比分直播

定时器模块应用.doc

返回
定时器模块应用.doc_第1页
第1页 / 共4页
定时器模块应用.doc_第2页
第2页 / 共4页
定时器模块应用.doc_第3页
第3页 / 共4页
定时器模块应用.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
输入捕捉(IC)编程步骤初始化函数TIOS---选择工作方式为 ICTCTLx---设置对应位输入捕捉的方式(x3、4,高位是 3,低位是 4)TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x1)、中断允许、预分频TIE---中断使能中断函数清除标志位---TFLG1处理函数【例程 3】//---------------------------------------------------------------------------////功能说明利用 PP3 通道产生 40Hz,占空比为 50的方波// 利用 PT0 采集方波的个数,并在 PB 口显示//程序设计电子设计吧//设计时间2010.01.13//---------------------------------------------------------------------------//include /* common defines and macros */include /* derivative ination */pragma LINK_INFO DERIVATIVE “mc9s12dg128b“unsigned int _Num;//----------------------时钟初始化------------------------------//void PLL_Initvoid //PLLCLK2*OSCCLK*SYNR1/REFDV1{ //锁相环时钟2*16*21/1148MHzREFDV1; //总线时钟48/224MHzSYNR2;whileCRGFLGCLKSEL0 x80;}//--------------------通道 0 输入捕捉初始化-------------------//void ECT0_Initvoid { TSCR20 x06; //禁止溢出中断,分频系数 64(24/64MHz TIOS_IOS00; //通道 0 为输入捕捉TCTL40 x01; //捕捉上升沿TIE_C0I1; //通道 0 输入捕捉中断允许TSCR10 x80; //使能定时器 }//---------------------PWM 通道 3 初始化程序-------------------//void PWM_Initvoid {PWME_PWME30 x00; // PWW is disabled 禁止 PWMPRCLK0 x33; // 0b0011 0011 AB24M/83M 时钟预分频寄存器设置PWMSCLA150; // SAA/2/15010k 时钟设置PWMSCLB150; // SBB/2/15 10k 时钟设置PWMCTL0 x00; // no concatenation 控制寄存器设置 PWMCLK_PCLK31; // PWM3-----SB 时钟源的选择PWMPOL_PPOL31; // DutyHigh Time 极性设置PWMCAE_CAE30; // left-aligned 对齐方式设置PWMPER3250; // FrequencySB/25040 周期寄存器设置PWMDTY3125; // Duty cycle 50 占空比寄存器设置PWME_PWME31; // enable 使能}//----------------------主函数-------------------------//void mainvoid {PLL_Init;PWM_Init;ECT0_Init;DDRB0XFF;PORTB0X00;EnableInterrupts;for;; {} /* wait forever *//* please make sure that you never leave this function */}//--------------------转速计算-------------------------------//////智能车转速子函数////----------------------------------------------------------------// pragma CODE_SEG NON_BANKED //定时器通道 0 输入捕捉中断 void interrupt 8 Timer0_Onputvoid {TFLG1_C0F1; //清中断标志位_Num;PORTB_Num;if_Num255{_Num0;} }输出比较(OC)编程步骤初始化函数TIOS---选择工作方式为 OCTCx---通道 x 的 OC 寄存器赋初值,经过 N 秒后进入第一次中断TCTLx---设置对应位输入捕捉的方式(x1、2,高四位是 1,低四位是 2)TSCRx---控制寄存器设置,包括工作使能、确定工作方式(x1)、中断允许、预分频TIE---中断使能中断函数清除标志位---TFLG1重新赋初值 TCx【例程 4】//---------------------------------------------------------------------------////功能说明利用 PT0 的输出比较功能,定时进入中断// 利用 PORTB 显示定时的时间//程序设计电子设计吧//设计时间2010.01.15//---------------------------------------------------------------------------//include /* common defines and macros */include /* derivative ination */pragma LINK_INFO DERIVATIVE “mc9s12dg128b“//利用定时器输出比较功能产生定时中断//----------------------变量定义----------------------//static unsigned int waittime 0;//---------------------时钟初始化-------------------//void PLL_Initvoid //PLLCLK2*OSCCLK*SYNR1/REFDV1{ //锁相环时钟2*16*21/1148MHzREFDV1; //总线时钟48/224MHzSYNR2;whileCRGFLGCLKSEL0 x80;}//--------------------定时器初始化------------------//void ECT0_Initvoid{TIOS0 x01; //定时器通道 0 设置为输出比较 TC00 x00ee; //赋初值,当 TCNT 从 0 计数到此值时第一次进入中断TCTL20 x02; //其他七路与定时器断开 执行的动作时0 通道输出清零TSCR20 x86 //溢出中断禁止 24M/642.67 微秒,计一个数用 2.67 微秒TSCR10 x80; //使能定时器TIE0 x01; //通道 0 输出比较中断允许}//-----------------------主函数------------------------//void mainvoid {PLL_Init;ECT0_Init;DisableInterrupts;DDRB0 xff;PORTB0 x00;for;; {EnableInterrupts;} }//-----------------------中断函数处理-------------------//pragma CODE_SEG NON_BANKEDvoid interrupt 8 Timer0_ISRvoid //8 为定时器通道 0 的中断标号{unsigned int m;TFLG1_C0F1;//清中断标志位DisableInterrupts; mTCNT;TC0m37500; //37500*2.67us10ms 定时时间waittime;ifwaittime255 {waittime0; }PORTBwaittime;}
展开阅读全文
收藏
下载资源

加入会员免费下载





足球比分直播