OpenEdv-开源电子网

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

普通定时器的代码注释

[复制链接]

23

主题

127

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-5-6
在线时间
0 小时
发表于 2012-7-21 17:35:27 | 显示全部楼层 |阅读模式
下面是普通计数器例程的代码:

void timerx_init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1;//TIM3时钟使能    
  TIM3->ARR=arr;  //设定计数器自动重装值//刚好1ms    
TIM3->SC=psc;  //预分频器7200,得到10Khz的计数时钟
//这两个东东要同时设置才可以使用中断
TIM3->DIER|=1<<0;   //允许更新中断
TIM3->DIER|=1<<6;   //允许触发中断   
TIM3->CR1|=0x01;    //使能定时器3
  MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2  
}


刚好一秒说的是什么意思?
timerx_init(5000,7199);//10Khz的计数频率,计数到5000为500ms 
这样初始化的话,定时器计数加1,就是(psc+1)/Tclk=0.1ms 吧,进入中断一次的时间是Tout= (arr*(psc+1))/Tclk=500ms 吧 ?
这个 1s 说的什么?

我的博客,欢迎来访~
http://rmingwang.com
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

127

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-5-6
在线时间
0 小时
 楼主| 发表于 2012-7-21 17:53:48 | 显示全部楼层
还有那个“更新中断”的意思? 搜了下论坛里有个类似的疑问,不过没看懂。
TIM3 通用定时器 的话是不是没有“更新中断”?
我看中断号定义那里没有定义TIM3_UP_IRQChannel啊,所以 通用定时器 是不是没办法设置更新中断的中断程序?
那更新中断在这里还存在么?它在通用定时器的作用是什么呢?或者,更新中断指的是什么呢……
我的博客,欢迎来访~
http://rmingwang.com
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-7-21 23:44:11 | 显示全部楼层
注释偶尔有错的,有时候改了代码会忘了改注释的

至于TIM3 有没有更新事件中断,去看参考手册里对应的寄存器位就知道了。
https://github.com/roxma
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 22:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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