新手上路
- 积分
- 44
- 金钱
- 44
- 注册时间
- 2013-8-12
- 在线时间
- 0 小时
|

楼主 |
发表于 2013-9-6 21:21:21
|
显示全部楼层
附上原子哥的高电平输入捕获中断处理函数:
u8 TIM2CH1_CAPTURE_STA=0;
u16 TIM2CH1_CAPTURE_VAL;
void TIM2_IRQHandler(void)
{
if((TIM2CH1_CAPTURE_STA&0x80)==0)
{
if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)
{
if(TIM2CH1_CAPTURE_STA&0x40)
{
if((TIM2CH1_CAPTURE_STA&0x3f)==0x3f)
{
TIM2CH1_CAPTURE_STA=0x80;
TIM2CH1_CAPTURE_VAL=0xffff;
}
else TIM2CH1_CAPTURE_STA++;
}
}
}
if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESET)
{
if(TIM2CH1_CAPTURE_STA)
{
TIM2CH1_CAPTURE_STA|=0x80;
TIM2CH1_CAPTURE_VAL=TIM_GetCapture1(TIM2);
TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Rising);
}
else
{
TIM2CH1_CAPTURE_STA=0;
TIM2CH1_CAPTURE_VAL=0;
TIM_SetCounter(TIM2,0);
TIM2CH1_CAPTURE_STA=0x40;
TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Falling);
}
}
TIM_ClearITPendingBit(TIM2,TIM_IT_CC1|TIM_IT_Update);
}
求指导,谢谢…… |
|