| 
我用的是arm7的开发板,想测一个频率为100hz左右的方波的占空比和脉冲宽度<br />以前用中断,现在就直接用查询的方法,利用定时器的捕获功能<br />把外部信号接到定时器的cap0,允许双边沿中断,中断时读取保存了T0TC的T0CCR<br />然后处理,部分程序如下:<br /><br />.....<br />while(1)<br />{<br />    timer0_start();             //复位并开始计数<br />    T0CCR=0X05;                 //允许上升沿中断<br />    while((T0IR&0X10)!=0X10);   //查询中断标志位<br />    IR0_START=T0CR0;            //读取计数值<br />    T0IR=0X10;                  //清中断标志位    <br />    T0CCR=0X06;                 //允许下降沿中断<br />    while((T0IR&0X10)!=0X10);   //查询中断标志位<br />    IR0_MID=T0CR0;              //读取计数值<br />    T0IR=0X10;                  //清中断标志位 <br />    T0CCR=0X05;                //允许上升沿中断<br />    while((T0IR&0X10)!=0X10);   //查询中断标志位<br />    IR0_END=T0CR0;              //读取计数值<br />    T0IR=0X10;                  //清中断标志位<br />    timer0_end();               //停止计数器<br />}<br />...........<br /><br />请问这个流程是否合理,或者谁有更好的方法?<br />我在实测的时候,IR0_START大约为0<br />IR0_MID大致和IR0_END相等,这不符合实际的波形,目前也分析不出原因。<br />请高手指点!<br />3x!<br /> |   
     
  
 |