给两个写好的中断服务函数如下- void TIM3_IRQHandler(void)
- {
- if(TIM_GetITStatus(TIM3, TIM_IT_CC2) == SET)
- {
- /* Clear TIM3 Capture compare interrupt pending bit */
- TIM_ClearITPendingBit(TIM3, TIM_IT_CC2);
- if(CaptureNumber == 0)
- {
- /* Get the Input Capture value */
- IC3ReadValue1 = TIM_GetCapture2(TIM3);
- CaptureNumber = 1;
- }
- else if(CaptureNumber == 1)
- {
- /* Get the Input Capture value */
- IC3ReadValue2 = TIM_GetCapture2(TIM3);
-
- /* Capture computation */
- if (IC3ReadValue2 > IC3ReadValue1)
- {
- Capture = (IC3ReadValue2 - IC3ReadValue1);
- }
- else
- {
- Capture = ((0xFFFF - IC3ReadValue1) + IC3ReadValue2);
- }
- /* Frequency computation */
- TIM3Freq = (uint32_t) SystemCoreClock / Capture;
- CaptureNumber = 0;
- }
- }
- }
|