[STM8] TIM2的初始化代码看不懂,请讲解一下

[复制链接]
2782|5
 楼主| zini1900 发表于 2013-12-13 17:30 | 显示全部楼层 |阅读模式
        TIM2_IER = 0x00;           
        TIM2_EGR = 0x01;         
        TIM2_PSCR = 0x01;         
        TIM2_ARRH = 0XEA;           
        TIM2_ARRL = 0X60;
        TIM2_CNTRH = 0XEA;
        TIM2_CNTRL = 0X60;
        TIM2_CR1=0X01;
        TIM2_IER = 0x01;
                _asm("rim");
EGR是做什么用的
IER为什么开头设为0,最后又设为1
CNTR是计数初始值,ARR是溢出值,这两个值相等的话不就是没有计数吗
huiguang_1 发表于 2013-12-15 17:40 | 显示全部楼层
EGR是重新初始化计数器的,IER不开启的话你进不去定时器中断,CNTR是本身不断变化的,计数到溢出值就归零。所以CNTR开始为多少都无所谓。
 楼主| zini1900 发表于 2013-12-15 18:30 | 显示全部楼层
huiguang_1 发表于 2013-12-15 17:40
EGR是重新初始化计数器的,IER不开启的话你进不去定时器中断,CNTR是本身不断变化的,计数到溢出值就归零。 ...

重新初始化计数器能不能讲得详细一些,IER一开始为0是为了在初始化还没有设置好定时器的时候不让定时器进行中断吗?CNTR与ARR相同,是不是定时器一开始计数就进入中断。
huiguang_1 发表于 2013-12-15 19:36 | 显示全部楼层
1、重新初始化计数器:当你TIM2_CNTR计数到某数值的时候,重新初始化会使TIM2——CNTR清零。
2、也算是吧,一般其他的配置完了,才允许进中断。
3、是的。计数到ARR产生更新中断。
gpjun2008 发表于 2013-12-16 09:33 | 显示全部楼层
EGR的初始化如果没有用到捕获可以不用,可以把那句注释掉。但是如果用到捕获必须得TIME2_EGR=0x02等等,不然进不去中断
xiaox314 发表于 2014-1-9 09:10 | 显示全部楼层
还是多看看资料!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部