野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10234|回复: 7

求助 火哥例程和ST库的输入捕获中断函数不一样

[复制链接]
发表于 2017-1-12 14:50:20 | 显示全部楼层 |阅读模式
void TIM2_IRQHandler(void)
{
  /* Clear TIM2 Capture compare interrupt pending bit */
  TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
  /* Get the Input Capture value */
  IC2Value = TIM_GetCapture2(TIM2);
  if (IC2Value != 0)
  {
    /* Duty cycle computation */
    DutyCycle = (TIM_GetCapture1(TIM2) * 100) / IC2Value;
    /* Frequency computation */
    Frequency = 72000000 / IC2Value;
  }
  else
  {
    DutyCycle = 0;
    Frequency = 0;
  }
}



这是ST库的
回复

使用道具 举报

 楼主| 发表于 2017-1-12 14:50:50 | 显示全部楼层
void ADVANCE_TIM_IRQHandler(void)
{
  /* 清除中断标志位 */
  TIM_ClearITPendingBit(ADVANCE_TIM, TIM_IT_CC1);

  /* 获取输入捕获值 */
  IC1Value = TIM_GetCapture1(ADVANCE_TIM);
  IC2Value = TIM_GetCapture2(ADVANCE_TIM);
       
  // 注意:捕获寄存器CCR1和CCR2的值在计算占空比和频率的时候必须加1
        if (IC1Value != 0)
  {
    /* 占空比计算 */
    DutyCycle = (float)((IC2Value+1) * 100) / (IC1Value+1);

    /* 频率计算 */
    Frequency = (72000000/(ADVANCE_TIM_PSC+1))/(float)(IC1Value+1);
                printf("占空比:%0.2f%%   频率:%0.2fHz\n",DutyCycle,Frequency);
  }
  else
  {
    DutyCycle = 0;
    Frequency = 0;
  }
}
这是火哥的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 14:52:04 | 显示全部楼层
火哥说的 CCR1对应的是周期,CCR2对应的是占空比

ST库的好像相反啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 15:01:02 | 显示全部楼层
哪位大神手里有用过的通用定时器输入捕获程序给小弟借鉴借鉴
回复 支持 反对

使用道具 举报

发表于 2017-1-12 15:15:34 | 显示全部楼层
LYKKK 发表于 2017-1-12 15:01
哪位大神手里有用过的通用定时器输入捕获程序给小弟借鉴借鉴

放心,我的是绝对正确的。估计ST跟我相反的原因是用CC2通道作为触发信号。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 15:42:15 | 显示全部楼层
fire 发表于 2017-1-12 15:15
放心,我的是绝对正确的。估计ST跟我相反的原因是用CC2通道作为触发信号。

我也是这么觉得的  至少火哥的 +1就比ST的稳  
  
还有火哥   我想拿你的 高级定时器pwm输入捕获例程 改成通用定时器   
改了io口,tim2,APB1,中断名,删了重复计数器   可是还是没反应,    我是不是还是漏了什么?  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-12 15:51:18 | 显示全部楼层
fire 发表于 2017-1-12 15:15
放心,我的是绝对正确的。估计ST跟我相反的原因是用CC2通道作为触发信号。

我直接把TIM1_CC_IRQn改成TIM3_IRQn了   

是不是这出事了
回复 支持 反对

使用道具 举报

发表于 2017-1-12 16:01:10 | 显示全部楼层
LYKKK 发表于 2017-1-12 15:51
我直接把TIM1_CC_IRQn改成TIM3_IRQn了   

是不是这出事了

你认真看下教程或者视频,搞清楚全部的原理先,不然你老问我也不知道怎么回答。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-10 05:47 , Processed in 0.035367 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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