码迷,mamicode.com
首页 > 其他好文 > 详细

STM32 输入捕获的脉冲宽度及频率计算

时间:2017-05-03 11:39:55      阅读:683      评论:0      收藏:0      [点我收藏+]

标签:计算   handle   end   idt   res   clear   capture   set   reset   

 1 TIM8_Cap_Init(0XFFFF,72-1);    //以1Mhz的频率计数
 2 voidTIM8_CC_IRQHandler(void)
 3 {  
 4     if(TIM_GetITStatus(TIM8,TIM_IT_CC4)!=RESET)   
 5     {       
 6         TIM_ClearITPendingBit(TIM8, TIM_IT_CC4);    //清除中断标志位
 7         if(state==0)                                                 //捕获第一个上升沿          
 8         {               
 9             state=1;          
10             timecount=TIM_GetCapture4(TIM8);          //记录第一次上升沿的CNT值       
11         }       
12         else if(state==1)                                           //捕获第二个上升沿      
13         {                  
14            state=0;          
15            timecount1=TIM_GetCapture4(TIM8);         //记录第二次上升沿的CNT值
16            if(timecount//两次上升沿的差值           
17         }           
18         else if(timecount>timecount1)          
19        {                
20            test=(0xffff-timecount)+timecount1;          //两次上升沿的差值           
21         }           
22        else             
23            test=0;             
24        fq=1000000/test;                                        //脉冲的频率       
25    }
26 }

 

STM32 输入捕获的脉冲宽度及频率计算

标签:计算   handle   end   idt   res   clear   capture   set   reset   

原文地址:http://www.cnblogs.com/qibeicha/p/6800704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!