你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库关于定时器捕获中断的问题

[复制链接]
安静ing 提问时间:2018-5-18 11:23 /
我定时器设了1us分频时间

然后使能CC1中断
        __HAL_TIM_SetCompare(&Tim3Handle,TIM_CHANNEL_1, cnt_tar);              /* 设置捕获比较计数器CC1 */
        __HAL_TIM_CLEAR_IT(&Tim3Handle, TIM_IT_CC1);
        __HAL_TIM_ENABLE_IT(&Tim3Handle, TIM_IT_CC1);                        /* 使能CC1中断 */

时间到进入CC1中断
    if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) !=RESET)
    {
        __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
        __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
        s_TIM_CallBack1(1);
    }

论__HAL_TIM_SetCompare 也就是CCR1的值设多少 到中断的时间始终是1us  求解是怎么回事啊

收藏 评论7 发布时间:2018-5-18 11:23

举报

7个回答
七哥 回答时间:2018-5-18 12:01:50
本帖最后由 toofree 于 2018-5-18 12:03 编辑

你用的哪种捕获?不知道你想说个什么?
从你发的那一点点程序什么也看不出来,要发就发工程。
如果是类似PWM输出捕获,占空比不变的情况下,两次次捕获的间隔时间肯定是固定值。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

安静ing 回答时间:2018-5-18 12:26:37
toofree 发表于 2018-5-18 12:01
你用的哪种捕获?不知道你想说个什么?
从你发的那一点点程序什么也看不出来,要发就发工程。
如果是类似PW ...

定时器是一直在跑 通过设置捕获比较中断 可以实现多任务定时
七哥 回答时间:2018-5-18 14:13:27
安静ing 发表于 2018-5-18 12:26
定时器是一直在跑 通过设置捕获比较中断 可以实现多任务定时

那出现固定1us就是正常现象呀。你这个就是类似PWM输出方式。打个比方,假如PWM周期是1000个时钟,CCR1设置为500,这时候当计数器在0到499的时候输出PWM输出1;当达到500时会产生中断,PWM输出转为0,直到999,之后再输出转为1。
安静ing 回答时间:2018-5-19 02:00:41
toofree 发表于 2018-5-18 14:13
那出现固定1us就是正常现象呀。你这个就是类似PWM输出方式。打个比方,假如PWM周期是1000个时钟,CCR1设 ...

设比较值前我是先读取计数值在加上我的比较值给CCR 照理应该是到比较值时中断 结果只经过1个计数值就中断了
我用标准库时好好的换成HAL库就这样了
feixiang20 回答时间:2018-5-19 02:02:09
被独立被配置的值,从而各自产生中断,实现不同时间间隔的定时器中断,1us正常

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

安静ing 回答时间:2018-5-19 02:08:10
feixiang20 发表于 2018-5-19 02:02
被独立被配置的值,从而各自产生中断,实现不同时间间隔的定时器中断,1us正常 ...

经过1个计数值就中断了 也就是说 打开中断后就进中断了 怎么就正常了
安静ing 回答时间:2018-5-19 02:31:42
开启CC1IE前我已经清了CC1IF 但CC1IF还是直接变为1

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版