我用的是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 /> |
|