OpenEdv-开源电子网

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

请教定时器中断中更新中断和计数器中断的区别问题

[复制链接]

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
发表于 2013-8-9 11:31:58 | 显示全部楼层 |阅读模式
            

书上给的例子是500ms的计时,每次传入的形参是4999(arr),那意思是不是就是每次从4999开始递减,减到0便进入中断,可是也没见设置计数器的计数方向是向下计数,还有这个更新中断和计数器中断有什么区别,为啥这里面还要弄一个允许更新中断。比喻51里面,我给一个重装值,使能定时器中断允许位,那么当这个数加到了65536就可以触发定时器中断。类比STM32,对于那个计数方向的设置和其他相关使能位还能理解,但是对于冒出这么一个更新中断很是不理解,不知道他放在这里有啥优点,又能解决啥问题。



上面这个图是不是也说明计数器溢出自己就会触发中断,不需要弄个更新事件中断?拜托学懂了的人帮忙提点一下。谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-9 12:04:13 | 显示全部楼层
没有配置的就代表用默认值,默认值是0,那么请去<stm32参考手册>找到计数器方向控制位,去看看0代表什么方向.
更新中断一般就是指计数器的上溢/下溢时产生的中断,你的截图上面就是CNT值到达ARR了,重新归零,此时产生了更新中断标志位.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-8-9 11:34:00 | 显示全部楼层
还有说掉了一句,什么时候可以不用那个允许更新中断
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-9 12:04:41 | 显示全部楼层
回复【2楼】lingyue502:
---------------------------------
你不想产生更新中断的时候,就可以不要.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-8-9 15:00:08 | 显示全部楼层
谢谢原子哥的提示,按照提示看了数据手册,明白了,谢谢!还好听学长的建议买的是正点的开发板,服务确实令人满意
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-7-5
在线时间
6 小时
发表于 2014-4-1 22:31:51 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
TIM3->DIER|=1<<0;   //允许更新中断
TIM3->DIER|=1<<6;   //允许触发中断
触发中断与更新中断
是不是说定时器到时间用的是触发中断,而计数器更新数据用的是更新中断呢?
原子哥请指教?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-1 22:59:19 | 显示全部楼层
回复【6楼】shuidi_wangdan:
---------------------------------
不是,注释掉触发中断,也是可以正常运行的。。。
触发是指外部触发,比如ETR之类的。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-7-5
在线时间
6 小时
发表于 2014-4-2 09:59:53 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
谢谢原子哥,原来是这样!
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2012-12-27
在线时间
0 小时
发表于 2014-4-14 16:40:22 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,我这想用定时器1作为定时器3的主定时器,并且在定时器3的终端里完成相应的功能,
RCC->APB1ENR|=1<<1;     // TIM3时钟使能    
TIM3->ARR=40000; // 设定计数器自动重装值, 是40000个MCLK时钟
TIM3->SC=0;
TIM3->SMCR=0x0007; // Timer1的OC1的更新事件来触发 
TIM3->DIER|=0X41;   //允许触发中断,更新中断
 MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占2,子优先级2,组2
中断函数
void TIM3_IRQHandler(void)
{              
if(TIM3->SR&0x00001) //更新中断UIF
{
biaoji=1;
}
 TIM3->CR1&=~(0x01); //停止定时器3
 TIM3->SR&=~(1<<0);//清除中断标志位
}
这样设置对吗?而且我的程序里面USB的中断返回不了,USB_istr()这个函数一直在执行。不知什么情况。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-14 19:11:41 | 显示全部楼层
回复【9楼】BULELJ:
---------------------------------
这个主从模式,我也没用过哦,你得自己研究下。
中断函数返回不了,你仿真看了么?
具体是死在哪一句?还是不停的进入中断?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2012-12-27
在线时间
0 小时
发表于 2014-4-14 20:47:13 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
原子哥,例程里面有两句
TIM3->DIER|=1<<0;   //允许更新中断
TIM3->DIER|=1<<6;   //允许触发中断 
不能随便同时开启,比如主从模式,如果同时开启了,会一直进触发中断。我在这个问题上困了好长时间。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-4-14 22:12:14 | 显示全部楼层
回复【11楼】BULELJ:
---------------------------------
这里不需要开2个了。。。
开启更新中断即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
24
金钱
24
注册时间
2014-8-14
在线时间
0 小时
发表于 2014-9-19 10:14:56 | 显示全部楼层
原子哥,我有个问题问你一下,我现在需要两个定时器,一个是整个系统要用的,另外一个是给ADC转换用的,两个会不会冲突,而且两个时间也不一样
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-19 23:23:09 | 显示全部楼层
回复【13楼】超酷小子:
---------------------------------
不会。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

17

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2014-4-12
在线时间
0 小时
发表于 2014-10-13 22:39:58 | 显示全部楼层
仿真几乎没用过。。。搞搞
规格严格,功夫到家
回复 支持 反对

使用道具 举报

7

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2013-1-23
在线时间
4 小时
发表于 2014-11-18 10:18:52 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
我对触发中断和更新中断还是没有很理解。你说的外部触发指哪些?ETR是什么意思?不是EGR?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-19 00:22:17 | 显示全部楼层
回复【16楼】浮生长恨:
---------------------------------
ETR就是外部触发啊,external triger....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

60

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
503
金钱
503
注册时间
2014-2-28
在线时间
7 小时
发表于 2015-4-9 13:47:27 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
TIM_ITConfig(TIM2, TIM_IT_Update|TIM_IT_CC2,ENABLE);

为什么我配置 TIM_IT_Update之后,就老是进入中断呢?

官方提供的源码我看没有配置 TIM_IT_Update 这有什么区别呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-4-9 23:14:53 | 显示全部楼层
回复【18楼】交流zzk:
---------------------------------
Update,只要CNT溢出就可以触发一次中断。
自然不停的进入了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-3-28
在线时间
0 小时
发表于 2015-6-11 02:10:50 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
原子哥,TIM3_IRQHandler这个中断服务函数的名字不可以改么?我看程序也没有说中断时怎么进入这个函数,为什么一中断就会选择这个函数执行呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-11 22:28:06 | 显示全部楼层
回复【20楼】wbxccl:
---------------------------------
因为硬件机制。
函数名字可以改,不过不建议
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-8-5
在线时间
9 小时
发表于 2015-9-20 18:04:15 | 显示全部楼层
回复【21楼】正点原子:
---------------------------------
原子哥,那定时器的溢出中断就和更新中断就是一个意思了,就是指重新装载的时候产生的中断?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-9-20 21:46:00 | 显示全部楼层
回复【22楼】霸王表急:
---------------------------------
不完全一样,溢出中断应该是更新中断的一个子集。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2015-9-17
在线时间
37 小时
发表于 2015-10-16 11:23:01 | 显示全部楼层
回复【21楼】正点原子:
---------------------------------
你好原子哥!!!你说一中断就会选择TIM3_IRQHandler这个中断服务函数去执行是因为硬件机制,这些看些资料会更深入了解些啊?还有IO的外部中断函数有7个固定的名字,那么定时器的中断有没有固定的名字?有的话在哪里?谢谢!
很高兴同大家交流学习STM32的专业知识!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-18 21:58:14 | 显示全部楼层
回复【24楼】可靠的蓄势:
---------------------------------
名字在.s文件里面.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2015-5-9
在线时间
9 小时
发表于 2015-11-13 17:26:49 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
请问原子哥,如果不清除中断标志位会发生什么情况呢?是一直待在中断里面还是不停的发生中断?   望指教。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-17 23:39:11 | 显示全部楼层
回复【26楼】xiaolei:
---------------------------------
实际测试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
408
金钱
408
注册时间
2016-1-28
在线时间
72 小时
发表于 2016-3-28 16:45:58 | 显示全部楼层
谢谢原子哥的回复  ,明白了一些问题
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-10-13
在线时间
0 小时
发表于 2016-10-13 10:39:54 | 显示全部楼层
原子哥 更新中断可以仅用下溢更新吗 而不用上溢更新吗
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2016-6-1
在线时间
11 小时
发表于 2016-12-29 19:50:20 | 显示全部楼层
这个说的挺细致,很好,谢谢,学习了
回复 支持 反对

使用道具 举报

2

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2016-4-21
在线时间
38 小时
发表于 2017-2-27 22:27:12 | 显示全部楼层
正点原子 发表于 2015-9-20 21:46
回复【22楼】霸王表急:
---------------------------------
不完全一样,溢出中断应该是更新中断的一个子集 ...

更新中断就是重复溢出多少次才给你来一个溢出中断,而溢出中断就是说一溢出就发生中断,对吗?
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2017-3-17
在线时间
86 小时
发表于 2017-8-16 08:53:26 | 显示全部楼层
学习了!
回复 支持 反对

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
发表于 2017-9-19 00:01:13 | 显示全部楼层
触发中断  外部触发具体指的是什么?有哪些具体事件是外部触发
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2018-11-8
在线时间
10 小时
发表于 2018-11-29 22:51:18 | 显示全部楼层
请问原子哥 我怎么判断更新中断结束呢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-1 08:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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