1.CPU频率60M,外围设备频率60M<br />2.TMR_wait(680)大概延时多少?我算了下是22us左右,不知道对不?<br />3.我现在需要精确延时22.7us/45.4us等,请问该怎么才能保证精度?<br /><br />#ifndef __TMR_C__<br />#define __TMR_C__<br />#include <common.h><br /><br />#if WAIT_USING_TIMER==1<br /><br />void TMR_init()<br />{<br /> UART_printf("Timer Module init...");<br /> T0CTCR=0x00;/*选择定时器模式*/<br /> T0TC=0x00000000;/*原始数据0x00000000*/<br /> T0PR=0x00000000;<br /> T0PC=0x00000000;<br /> UART_printf("OK!
");<br />}<br /><br />void TMR_wait(unsigned int total)<br />{<br /> T0TC=0x00000000;/*原始数据0x00000000*/<br /> T0MR0=total;/*设置匹配0数据*/<br /> T0TCR=0x01;/*使能TMR中断*/<br /> T0MCR=0x07;/*产生MR0中断,TC复位,TMR停止*/<br /> while(!(T0IR&0x01));/*等待MR0中断产生*/<br /> T0IR=0x01;/*清除中断*/<br /> T0TCR=0x00;/*禁止Timer*/<br />}<br /><br /><br /><br />#endif<br /><br />#endif |
|