mc9s12DG128时钟问题

[复制链接]
 楼主| 发表于 2007-9-27 21:59 | 显示全部楼层 |阅读模式
mc9s12DG128时钟问题<br /><br />通过PLL锁相环在外部晶振为16MHz时得到24MHz,&nbsp;现为了证实是否是24MHz,设置了主定时器(4分频),这时定时器在10922.66us后就应溢出(公式为(4/24)*65536=10922.66us),但我在PB0口接了示波器观看,发现为7ms左右,望各位高手指正,到底什么地方错了<br /><br /><br /><br />#include&nbsp;/*&nbsp;common&nbsp;defines&nbsp;and&nbsp;macros&nbsp;*/<br />#include&nbsp;/*&nbsp;derivative&nbsp;information&nbsp;*/<br />#pragma&nbsp;LINK_INFO&nbsp;DERIVATIVE&nbsp;&quot;mc9s12dg128b&quot;<br /><br /><br />//初始化外围设备接口<br />void&nbsp;PeriphInit(void)&nbsp;<br />{<br /><br />unsigned&nbsp;char&nbsp;clear;<br /><br />DisableInterrupts;&nbsp;//关全局中断<br /><br />//&nbsp;PB[7..0]&nbsp;作为输出,初始为高电平&nbsp;<br />PORTB&nbsp;=&nbsp;0xFF;<br />DDRB&nbsp;=&nbsp;0xFF;<br /><br />//初始化主定时器<br />TSCR1&nbsp;=&nbsp;0x80;&nbsp;/*&nbsp;enable&nbsp;timer&nbsp;TCNT&nbsp;*/<br />TSCR2&nbsp;=&nbsp;0x82;&nbsp;/*&nbsp;TCNT&nbsp;prescaler&nbsp;setup&nbsp;4分频*/<br /><br /><br />//设置PLL锁相环(内部)时钟24MHz为系统时钟&nbsp;(外部时钟为16MHz,经PLL内部时钟为24MHz)<br />CLKSEL&nbsp;&=&nbsp;0x7F;&nbsp;<br />REFDV&nbsp;=&nbsp;1;&nbsp;<br />SYNR&nbsp;=&nbsp;2;&nbsp;<br />while(!(CRG**&0x08));<br />CLKSEL&nbsp;|=&nbsp;0x80;<br /><br /><br />EnableInterrupts;&nbsp;//开全局中断<br /><br />}<br /><br />//主定时器中断&nbsp;<br />#pragma&nbsp;CODE_SEG&nbsp;NON_BANKED<br />void&nbsp;interrupt&nbsp;Int_TimerOverFlow(void)<br />{&nbsp;<br />unsigned&nbsp;char&nbsp;i;<br /><br />T**2_TOF&nbsp;=&nbsp;1;&nbsp;//clear&nbsp;timer&nbsp;overflow&nbsp;flag<br />PORTB_BIT0=!PORTB_BIT0;<br /><br />}<br /><br />#pragma&nbsp;CODE_SEG&nbsp;DEFAULT<br /><br /><br />void&nbsp;main(void)&nbsp;<br />{<br />/*&nbsp;put&nbsp;your&nbsp;own&nbsp;code&nbsp;here&nbsp;*/<br /><br />PeriphInit();<br /><br />for&nbsp;(;;)&nbsp;;<br /><br />}<br />
发表于 2007-9-28 08:21 | 显示全部楼层

何必如此复杂?

这样的长段代码在论坛里没有多少人会仔细看的。大家都有很多事要做。这里又不是老师批改学生作业的地方。<br /><br />要验证内部时钟的频率,很简单:主循环内写1条语句就搞定了<br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(;;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTB_BIT0=!PORTB_BIT0;<br />&nbsp;&nbsp;&nbsp;}<br /><br /><br /><br />查得一次循环所需的指令周期数,示波器看一下波型宽度,就知道了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

1

粉丝
快速回复 返回顶部 返回列表