| 
在线时间0 小时
UID257838
注册时间2009-6-17
NXP金币0 
 该用户从未签到 新手上路 
 
 
	积分7 
最后登录1970-1-1 | 
 
 发表于 2011-1-3 21:42:42
|
显示全部楼层 
回复:MC9S12XEP100中TIM和ECT两种时钟中断
| 回复第 1 楼 龙丘于2010-07-20 08:01:15发表: 下面源代码已经在开发板上验证过,仅供参考:
  
 /********************************************
 龙丘MC9S12XEP100多功能开发板
 Designed by Chiu Sir
 E-mail:chiusir@yahoo.cn
 软件版本:V1.1
 最后更新:2010年7月20日
 相关信息参考下列地址:
 ------------------------------------
 Code Warrior 5.0
 Target : MC9S12XEP100
 Crystal: 16.000Mhz
 busclock:16.000MHz
 pllclock:32.000MHz
 -------------------------------------
 说明:
 分别演示ECT_TIMER和TIM_TIMER,
 ECT_TIMER  PB7指示  中断周期   80ms
 TIM_TIMER  PB6指示  中断周期   320ms
 中断周期没有推敲,大家可以自己算算看。
 ============================================*/
 #include
 #include "derivative.h"
 
 //产生?ms的定式中断
 static void ECT_Timer_Init(void)
 {
 //ECT_TSCR1=0X80;//TIMER INT ENABLED
 ECT_TSCR1=0x90;//计数器使能TEN|快速清零TFFCA
 //TIM_TSCR1=0X00;  //禁止TIM
 ECT_TSCR2=0X85;//DIV 32->80ms
 ECT_TCNT =0;     //
 ECT_PACTL=0X50;  //PT7 PIN,PACN32 16BIT
 
 }
 static void TIM_Timer_Init(void)
 {
 //TIM_TSCR1=0X80;//TIMER INT ENABLED
 TIM_TSCR1=0x90;//计数器使能TEN|快速清零TFFCA
 //TIM_TSCR1=0X00;  //禁止TIM
 TIM_TSCR2=0X87;//DIV 128->320ms
 TIM_TCNT =0;     //
 TIM_PACTL=0X50;  //PT7 PIN,PACN32 16BIT
 //ICPAR=0;   //8BIT DISABLED
 }
 //-----------------------------------------------------
 // PLL初始化子程序   BUS Clock=16M
 void setbusclock(void)
 {
 CLKSEL=0X00;    // disengage PLL to system
 PLLCTL_PLLON=1;   // turn on PLL
 SYNR=0x00 | 0x01;  // VCOFRQ[7:6];SYNDIV[5:0]
 // fVCO= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1)
 // fPLL= fVCO/(2 × POSTDIV)
 // fBUS= fPLL/2
 // VCOCLK Frequency Ranges  VCOFRQ[7:6]
 // 32MHz
 [/td]        [/tr]    [/table]
 | 
 |