zoukankan      html  css  js  c++  java
  • 捕获中断服务程序

     1 u8  TIM5CH1_CAPTURE_STA=0;    //输入捕获状态                            
     2 u16    TIM5CH1_CAPTURE_VAL;    //输入捕获值
     3  
     4 //定时器5中断服务程序     
     5 void TIM5_IRQHandler(void)
     6 { 
     7 
     8      if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获    
     9     {      
    10         if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)
    11          
    12         {        
    13             if(TIM5CH1_CAPTURE_STA&0X40)//已经捕获到高电平了
    14             {
    15                 if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
    16                 {
    17                     TIM5CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次
    18                     TIM5CH1_CAPTURE_VAL=0XFFFF;
    19                 }else TIM5CH1_CAPTURE_STA++;
    20             }     
    21         }
    22     if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕获1发生捕获事件
    23         {    
    24             if(TIM5CH1_CAPTURE_STA&0X40)        //捕获到一个下降沿         
    25             {                  
    26                 TIM5CH1_CAPTURE_STA|=0X80;        //标记成功捕获到一次高电平脉宽
    27                 TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);
    28                    TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获
    29             }else                                  //还未开始,第一次捕获上升沿
    30             {
    31                 TIM5CH1_CAPTURE_STA=0;            //清空
    32                 TIM5CH1_CAPTURE_VAL=0;
    33                  TIM_SetCounter(TIM5,0);
    34                 TIM5CH1_CAPTURE_STA|=0X40;        //标记捕获到了上升沿
    35                    TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);        //CC1P=1 设置为下降沿捕获
    36             }            
    37         }                                                
    38      }
    39  
    40     TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
    41  
    42 }
     因此上面代码写的0x80就指的是捕获完成标志,0x40指的是捕获到高电平标志,0x00~0x3f则是表示捕获高电平或定时器溢出的次数。
  • 相关阅读:
    屏蔽鼠标右键/F1帮助
    vs2010如何连接到mysql数据库
    经典的数据库设计贴吧
    js子窗口刷新父窗口
    数据库三大范式
    写给毕业生
    SQL Server权限数据库设计
    .NET
    ASP.NET MVC框架(第一部分) 【转】
    什么是SQL注入法攻击 .
  • 原文地址:https://www.cnblogs.com/zengsf/p/7263859.html
Copyright © 2011-2022 走看看