初级会员

- 积分
- 182
- 金钱
- 182
- 注册时间
- 2015-11-11
- 在线时间
- 22 小时
|

楼主 |
发表于 2016-3-4 12:46:05
|
显示全部楼层
void EXTI9_5_IRQHandler(void)
{
delay_us(10); //延时10us
if(EXTI_GetITStatus(EXTI_Line7) != RESET)
{
if(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN)==1)
{
TIM_SetCounter(TIM2,0);
TIM_Cmd(TIM2, ENABLE); //开启时钟
}
// while(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN)); //等待低电平
if(GPIO_ReadInputDataBit(ECHO_PORT,ECHO_PIN)==0)
{
TIM_Cmd(TIM2, DISABLE); //定时器2失能
UltrasonicWave_Distance=TIM_GetCounter(TIM2)*5*34/200.0; //计算距离&&UltrasonicWave_Distance<150
if(UltrasonicWave_Distance>0)
{
printf("distance1:%f cm\n",UltrasonicWave_Distance);
}
}
EXTI_ClearITPendingBit(EXTI_Line7); //清除EXTI7线路挂起位
}
} |
|