[ZLG-ARM] 路过的顺便帮忙看看LPC2146的Timer问题

[复制链接]
2372|0
 楼主| seekfor 发表于 2007-7-10 08:31 | 显示全部楼层 |阅读模式
1.CPU频率60M,外围设备频率60M<br />2.TMR_wait(680)大概延时多少?我算了下是22us左右,不知道对不?<br />3.我现在需要精确延时22.7us/45.4us等,请问该怎么才能保证精度?<br /><br />#ifndef&nbsp;__TMR_C__<br />#define&nbsp;__TMR_C__<br />#include&nbsp;&ltcommon.h&gt<br /><br />#if&nbsp;WAIT_USING_TIMER==1<br /><br />void&nbsp;TMR_init()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;UART_printf(&quot;Timer&nbsp;Module&nbsp;init...&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;T0CTCR=0x00;/*选择定时器模式*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TC=0x00000000;/*原始数据0x00000000*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0PR=0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0PC=0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;UART_printf(&quot;OK!
&quot;);<br />}<br /><br />void&nbsp;TMR_wait(unsigned&nbsp;int&nbsp;total)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TC=0x00000000;/*原始数据0x00000000*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0MR0=total;/*设置匹配0数据*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR=0x01;/*使能TMR中断*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0MCR=0x07;/*产生MR0中断,TC复位,TMR停止*/<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(T0IR&0x01));/*等待MR0中断产生*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IR=0x01;/*清除中断*/<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR=0x00;/*禁止Timer*/<br />}<br /><br /><br /><br />#endif<br /><br />#endif
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部