void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM_Used, TIM_IT_CC1) == SET) //ÅжÏÊÇ·ñÓÐÉÏÉýÑØ´¥·¢ÖÐ¶Ï { TIM_ClearITPendingBit(TIM_Used, TIM_IT_CC1); //Çå³ýÖжϱêÖ¾ if(capture_number == 0) { capture_number = 1; last_time = TIM_GetCapture1(TIM_Used); //½«µÚÒ»´Î¶ÁÈ¡µÄ¶¨Ê±Æ÷µÄÖµ´æ·Åµ½last_time_CH1 } else if(capture_number == 1) { capture_number = 0; this_time = TIM_GetCapture1(TIM_Used); if(this_time > last_time) { tmp16 = (this_time - last_time); } else { tmp16 = ((0xFFFF - last_time) + this_time); } } } }
时间: 2024-03-14 12:48:42 浏览: 112
STM32L051C8T6_TIM.rar
这段代码是一个定时器3的中断服务程序,用于判断是否有输入捕获事件发生。如果有,会进行一些处理,包括清除中断标志位、获取输入捕获值等。其中,capture_number用于标记当前是第几次捕获事件,last_time用于保存上一次捕获事件的时间,this_time用于保存当前捕获事件的时间,tmp16用于保存本次捕获事件与上一次捕获事件的时间差。
阅读全文