[资料] 【众拳】STM8定时器 附代码
980 查看
7 回复
 楼主 | 发布于 2017-12-08 | 只看楼主
分享到:


STM8定时器概述

STM8S提供三种类型的 TIM 定时器:高级控制型(TIM1)、通用型(TIM2/TIM3/TIM5)和基本型定时器(TIM4/TIM6)。它们虽有不同功能但都基于共同的架构。此共同的架构使得采用各个定时器来设计应用变得非常容易与方便(相同的寄存器映射,相同的基本功能)。

16位高级控制定时器(TIM1)

● 16位向上、向下、向上/下自动装载计数器
● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器
● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值
● 同步电路,用于使用外部信号控制定时器以及定时器互联 (某些型号的芯片没有定时器互联功能)
● 多达4个独立通道可以配置成:
─  输入捕获
─  输出比较
─  PWM 生成(边缘或中间对齐模式)
─  六步 PWM 输出
─  单脉冲模式输出
─  三个支持带互补输出,并且死区时间可编程的通道
● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态
● 产生中断的事件包括:
─  更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
─  触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
─  输入捕获
─  输出比较
─  刹车信号输入

TIM1预分频器

TIM1的预分频器基于一个由16位寄存器(TIM1_PSCR)控制的16位计数器。由于这个控制寄存器带有缓冲器,因此它能够在运行时被改变。预分频器可以将计数器的时钟频率按1到
65536之间的任意值分频。

计数器的频率可以由下式计算:
f CK_CNT = f CK_PSC / (PSCR[15:0] + 1)

向上计数模式

在向上计数模式中,计数器从0计数到用户定义的比较值(TIMx_ARR寄存器的值),然后重新从0
开始计数并产生一个计数器溢出事件,同时,如果TIM1_CR1寄存器的UDIS位是0,将会产生一
个更新事件(UEV)。




向下计数模式

在向下模式中,计数器从自动装载的值(TIMx_ARR寄存器的值)开始向下计数到0,然后再从自
动装载的值重新开始计数,并产生一个计数器向下溢出事件。如果TIM1_CR1寄存器的UDIS位
被清除,还会产生一个更新事件(UEV)。




中央对齐模式( 向上/ 向下计数)

在中央对齐模式,计数器从0开始计数到自动加载的值(TIMx_ARR寄存器)-1,产生一个计数器
溢出事件,然后向下计数到0并且产生一个计数器下溢事件;然后再从0开始重新计数。



定时器TIM1例子

说明:16分频,向上计数,1000次=1毫秒 触发一次中断

TIM1_TimeBaseInit(15,TIM1_COUNTERMODE_UP,1000,0);
TIM1_ARRPreloadConfig(ENABLE);//使能自动重装
TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);//数据更新中断
TIM1_Cmd(ENABLE);//开定时器
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{  
    TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}


定时器使用重点

1.预分频值
2.计数模式
3.自动重装载值
4.重复计数器值
5.中断入口

【众拳】剑齿虎STM8开发板的定时器代码下载:






本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )
回复 举报

回复于 2017-12-08 沙发

感谢分享;
(0 )
评论 (0) 举报

回复于 2017-12-08 2#

厉害
(0 )
评论 (0) 举报

回复于 2019-03-13 3#

多谢分享!!!!!
(0 )
评论 (0) 举报

回复于 2019-03-16 4#

谢谢分享
(0 )
评论 (0) 举报

回复于 2019-03-16 5#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-05-28 6#

谢谢分享
(0 )
评论 (0) 举报

回复于 2019-06-23 7#

感谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部