OpenEdv-开源电子网

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

定时器的一般定时功能问题请解答

[复制链接]

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
发表于 2012-5-4 16:07:14 | 显示全部楼层 |阅读模式
1. 定时器在进入中断处理函数后,在执行中断函数的时候,定时器是不是也在同时进行计数,那么如果中断处理函数的执行时间>定时器的定时时间,中断没有执行完那么时间一到是不是又开始执行中断
2.定时器执行TIM_Cmd(TIM7, ENABLE)之后又关闭定时器那么cnt寄存器里面的值是保持不变吗,接着又打开定时器那么计算器是从0开始计数,还是从前一次关闭定时器时的cnt的值开始计数
3.如果我只进行一次定时中断,是不是在定时中断服务程序里边用TIM_Cmd(TIM7, DISANABLE)
真正和谐
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
 楼主| 发表于 2012-5-4 16:24:34 | 显示全部楼层
4.如果对定时器的UG位置1,定时器有哪些动作,定时器是不是就开始重新计数,如果是打开中断了,就一定会进入中断处理函数吗(但是如果我只是想让定时器重新开始计数而已不一定想进行中断程序,如果想要定时器没有到达指定时间,就让定时器重新开始计数该怎么办)
谢谢!问题有点多
真正和谐
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-4 17:25:19 | 显示全部楼层
回复【楼主位】txz:
---------------------------------
1,是计数;如果你清除了中断标志位,就会再次被置位,如果没有,就无变化.
2,自己软件仿真找答案.
3,可以这么做.
4,UG位请查看<<STM32参考手册>>的说明.如果开中断了,没有触发条件,是不会进入中断服务函数的.没有到达指定时间,就让定时器重新开始计数该怎么办,这种情况,不需要用定时器吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
 楼主| 发表于 2012-5-5 09:13:51 | 显示全部楼层
置ug位手册上说重新初始化定时器的计数器并产生对寄存器的更新,触发条件是不是就是更新事件,如果软件置ug位,那会不会产生更新事件
真正和谐
回复 支持 反对

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
 楼主| 发表于 2012-5-5 09:14:51 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
置ug位手册上说重新初始化定时器的计数器并产生对寄存器的更新,触发条件是不是就是更新事件,如果软件置ug位,那会不会产生更新事件
真正和谐
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-5 12:15:56 | 显示全部楼层
回复【4楼】txz:
---------------------------------
软件置位应该也会产生一个UG事件.你测试一下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
 楼主| 发表于 2012-5-5 16:19:44 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我又看了手册,我的理解是在更新中断使能情况下,更新事件(uev)一定会触发中断,软件设置ug位,可以用urs位控制是否产生更新事件(uev),也就是说设置ug位可以重新初始化定时器的计数器并产生对寄存器的更新,但不一定产生更新事件,这个由urs位控制,不知理解正确否,我在固件库貌似没有找到软件产生更新定时器的函数,那位大侠发现了,难道是直接来TIM7->EGR= 0x1;
真正和谐
回复 支持 反对

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2012-4-25
在线时间
0 小时
 楼主| 发表于 2012-5-5 16:28:24 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
对于解答4,我是想隔一段时间就让定时器从新开始计数(是不是相当于喂狗(看门狗还没学)),如果超过时间就进入中断程序,我有两种方式1是软件设置ug位,2是调用timx-setcounter(0x0)将cnt设为零,不知哪种可行,
真正和谐
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-5 16:37:28 | 显示全部楼层
自己动手试试呗.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 20:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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