[mw_shl_code=c,true]void TIM2_IRQHandler(void)
{
if(((TIM2CH1_CAPTURE_STA&0XC0)==0))
{
if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)[/mw_shl_code]
[mw_shl_code=c,true] {
if(TIM2CH1_CAPTURE_STA==0X20)
{
TIM2CH1_CAPTURE_STA=0X80;
TIM2CH1_CAPTURE_VAL2=TIM_GetCapture1(TIM2);
TIM2CH1_CAPTURE_VAL=0;
TIM_SetCounter(TIM2,0);
TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Rising); [/mw_shl_code]
[mw_shl_code=c,true] } [/mw_shl_code]
[mw_shl_code=c,true] if(TIM2CH1_CAPTURE_STA==0)
{
TIM2CH1_CAPTURE_STA=0X40; [/mw_shl_code]
[mw_shl_code=c,true] TIM2CH1_CAPTURE_VAL=TIM_GetCapture1(TIM2);
TIM2CH1_CAPTURE_VAL2=0;
TIM_SetCounter(TIM2,0);
TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Falling); }
}
}
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1|TIM_IT_Update); [/mw_shl_code]
[mw_shl_code=c,true] [/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true] while(1)
{
if(TIM2CH1_CAPTURE_STA&0X40)//??????????????????????
{
temp1=TIM2CH1_CAPTURE_VAL; [/mw_shl_code]
[mw_shl_code=c,true] printf("H:%d us\r\n",temp1); [/mw_shl_code]
[mw_shl_code=c,true] TIM2CH1_CAPTURE_STA=0x20;
}
if(TIM2CH1_CAPTURE_STA&0X80)
{
temp=TIM2CH1_CAPTURE_VAL2; [/mw_shl_code]
[mw_shl_code=c,true] printf("zong:%d us\r\n",temp); [/mw_shl_code]
[mw_shl_code=c,true] TIM2CH1_CAPTURE_STA=0; [/mw_shl_code]
[mw_shl_code=c,true] }
}[/mw_shl_code]
[/mw_shl_code]
[mw_shl_code=c,true]} [/mw_shl_code]
|