if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)&(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==0))
flag=1;
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==0)&(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1))
flag=2;
if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)&(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1))
flag=3;
if(flag==1)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)
{
delay();
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)
START_TIME;
}
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1)
{
delay();
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1)
STOP_TIME;
TIMCounter = TIM_GetCounter(TIM2);
}
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //?ì?é???¨??TIM????·??ú??·?:TIM ??????
{
if(0<TIMCounter<65535)
{
i++;
if(i>=3)
{
TIM_SetCompare2(TIM4,0);
TIM_SetCompare3(TIM4,0);
u=0;
}
}
TIM_ClearITPendingBit(TIM2, TIM_IT_Update );
}
STOP_TIME;
}
if(flag==2)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1)
{
delay();
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_10)==1)
START_TIME;
}
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)
{
delay();
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==1)
STOP_TIME; flag=0;
TIMCounter = TIM_GetCounter(TIM2);
}
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //?ì?é???¨??TIM????·??ú??·?:TIM ??????
{
if(0<TIMCounter<65535)
{
i++;
if(i>=3)
{
TIM_SetCompare2(TIM4,0);
TIM_SetCompare3(TIM4,0);
u=0;
}
}
TIM_ClearITPendingBit(TIM2, TIM_IT_Update );
}
STOP_TIME;
}
if(flag==3)
{
i++;
if(i>=3)
{
TIM_SetCompare2(TIM4,0);
TIM_SetCompare3(TIM4,0);
u=0;
}
}
这是我的程序,可是车第一次通过终点线就停下来了,麻烦各位大神帮忙看看
|