打印
[STM32F1]

请教下stm32定时中断2个函数

[复制链接]
925|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子过客|  楼主 | 2014-12-13 13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[size=11.818181991577148px]有2个函数(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET) 和(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
这俩个中断的具体区别是什么啊
[size=11.818181991577148px]一个函数是TIM_CNT计数等于=CRR候触发中断吗,触发中断?
[size=11.818181991577148px]另一个是TIM_CNT到ARR时候触发中断?
我做实验用(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET)时候
把ARR=255 而TIM_OCInitStructure.TIM_Pulse=255时候怎么是方波呢?
沙发
airwill| | 2014-12-13 19:45 | 只看该作者
最关键的区别是, 前者来自于 CCR3 的匹配 (或捕捉) 触发; 而后者则是由定时器更新触发 (通常是计数器溢出).
这是定时器很重要的知识, 其实编程参考手册说得很仔细, 如果不容易理解, 建议通过实验弄清楚它

使用特权

评论回复
板凳
mmuuss586| | 2014-12-13 20:18 | 只看该作者
(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET
这个一般用于定时器3的通道3,捕获输入超时中断,比如做BLDC,PMSM电机控制会经常用到;

(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
这个定时器3中断

使用特权

评论回复
地板
电子过客|  楼主 | 2014-12-13 22:34 | 只看该作者
本帖最后由 电子过客 于 2014-12-13 22:37 编辑
airwill 发表于 2014-12-13 19:45
最关键的区别是, 前者来自于 CCR3 的匹配 (或捕捉) 触发; 而后者则是由定时器更新触发 (通常是计数器溢出). ...

谢谢您的指点,是不是 前者来自于 CCR3 的匹配 (或捕捉) 触发之后CNT计数就,不再向ARR上累计了,而是CNT 重新计数了?
通常是计数器溢出是指CNT计数到ARR是时候产生中断,这样理解对吗

使用特权

评论回复
5
小班儿| | 2014-12-14 16:33 | 只看该作者
学习下!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

205

帖子

2

粉丝