新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2016-3-7
- 在线时间
- 1 小时
|
1金钱
- void TIM5_IRQHandler(void)
- {
- if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获
- {
- if(TIM_GetITStatus(TIM5,TIM_IT_Update) != RESET)
- {
- if(TIM5CH1_CAPTURE_STA&0X40)//已经捕获到高电平了
- {
- if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
- {
- TIM5CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次
- TIM5CH1_CAPTURE_VAL=0XFFFF;
- }else TIM5CH1_CAPTURE_STA++;
- }
- }
- if(TIM_GetITStatus(TIM5,TIM_IT_CC1) !=RESET)
- {
- if(TIM5CH1_CAPTURE_STA & 0x40)//捕获到一个下降沿
- {
- TIM5CH1_CAPTURE_STA|=0X80; //标记成功捕获到一次上升沿
- TIM5CH1_CAPTURE_VAL = TIM_GetCounter(TIM5);
- TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获
- }
- else
- {
- TIM5CH1_CAPTURE_STA=0; //清空
- TIM5CH1_CAPTURE_VAL=0;
- TIM_SetCounter(TIM5,0);
- TIM5CH1_CAPTURE_STA|=0X40; //标记捕获到了上升沿
- TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling); //CC1P=1 设置为下降沿捕获
- }
- }
- }
- TIM_ClearITPendingBit(TIM5,TIM_IT_CC1|TIM_IT_Update); /*清除中断标志位*/
- }
|
|