OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5244|回复: 2

关于定时器输入捕获实验的一点疑惑。

[复制链接]

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2015-10-3
在线时间
2 小时
发表于 2015-10-30 16:29:15 | 显示全部楼层 |阅读模式
5金钱

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=0XFFFFFFFF;
    }else TIM5CH1_CAPTURE_STA++;
   } 
  }
  if(TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//????1·??ú????????
  { 
   if(TIM5CH1_CAPTURE_STA&0X40)  //????????????????   
   {      
    TIM5CH1_CAPTURE_STA|=0X80;  //±ê?????????????????????????í
     TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);//?????±?°????????.
     TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 ?è??????????????
   }else          //????????,????????????????
   {
    TIM5CH1_CAPTURE_STA=0;   //????
    TIM5CH1_CAPTURE_VAL=0;
    TIM5CH1_CAPTURE_STA|=0X40;  //±ê????????????????
    TIM_Cmd(TIM5,DISABLE);  //??±??¨?±?÷5
     TIM_SetCounter(TIM5,0);//TIM5???????????±??????????
     TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);  //CC1P=1 ?è??????????????
    TIM_Cmd(TIM5,ENABLE );  //?????¨?±?÷5
   }     
  }                    
  }
 TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //????????±ê????
}

红色标注的一行代码,这里关闭定时器TIM5,不知道在这里有什么用,我试着把他注释掉,做了几组实验,测试如下:

TIM_Cmd(TIM5,DISABLE):此时高电平时间为:2281163 us

TIM_Cmd(TIM5,ENABLE):此时高电平时间为:2395628 us
两次按键时间差不多,没看出DISABLE 和ENABLE 的区别,请问原子哥,这里代码加了一个TIM5不使能是为了什么考虑?

 

最佳答案

查看完整内容[请看2#楼]

防止设置TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);  //CC1P=1 ?è?????????????? 的时候,CNT计数. 如果你觉得差异不大,可以不加.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-30 16:29:16 | 显示全部楼层
防止设置TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);  //CC1P=1 ?è??????????????
的时候,CNT计数.
如果你觉得差异不大,可以不加.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2015-10-3
在线时间
2 小时
 楼主| 发表于 2015-10-30 20:37:32 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
暂时还没遇到DISABLE的时候CNT计数所带来的困扰,先这样理解吧,谢谢原子哥。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 12:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表