找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16451|回复: 12
打印 上一主题 下一主题
收起左侧

STM8定时器TIM1-TIM6使用详解与实验程序

  [复制链接]
跳转到指定楼层
楼主

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. *   说    明: STM8定时器
  3. *   开发平台: 剑齿虎STM8开发板        
  4. *   作    者: 刘洋 张殿东
  5. *   版    本: V1.0
  6. *
  7. *   IAR开发环境    版本 V2.20.1
  8. *   ST库函数       版本 V2.2.0
  9. ***********************************************************************/

  10. #include "pbdata.h"//引入自定义公共头文件

  11. void BSP_Configuration(void);//硬件初始化函数声明

  12. /***********************************************************************
  13. *   函 数 名: main
  14. *   功能说明: c程序入口
  15. *   形    参:无
  16. *   返 回 值: 错误代码(无需处理)
  17. ***********************************************************************/
  18. int main(void)
  19. {
  20.   BSP_Configuration();//硬件驱动初始化函数
  21.   
  22.   while(1)//主程序循环,反复执行循环体里的语句
  23.   {
  24.     //LED_Demo1();//在主程序中调用LED_Demo1()函数
  25.     //LED_Demo2();//在主程序中调用LED_Demo2()函数
  26.   }
  27. }
  28. /***********************************************************************
  29. *   函 数 名: BSP_Configuration
  30. *   功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。
  31. *   形    参:无
  32. *   返 回 值: 无
  33. ***********************************************************************/
  34. void BSP_Configuration(void)
  35. {  
  36.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//时钟速度为内部16M,1分频,
  37.   LED_Init();//调用LED初始化函数
  38.   Tim1_Init();
  39.   rim();//打开总中断
  40. }

  41. /*断言函数:它的作用是在编程的过程中为程序提供参数检查*/
  42. #ifdef USE_FULL_ASSERT
  43. void assert_failed(u8* file,u32 line)
  44. {
  45.   while(1)
  46.   {
  47.   }
  48. }
  49. #endif
复制代码

所有资料51hei提供下载:
【众拳】剑齿虎STM8开发板的程序下载:
STM8定时器程序.zip (999.64 KB, 下载次数: 202)


评分

参与人数 1黑币 +6 收起 理由
lwf1 + 6 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:259413 发表于 2017-12-9 14:51 | 只看该作者
定时器使用重点
1.预分频值
2.计数模式
3.自动重装载值
4.重复计数器值
5.中断入口

评分

参与人数 1黑币 +6 收起 理由
lwf1 + 6 赞一个!

查看全部评分

回复

使用道具 举报

板凳
ID:294886 发表于 2018-5-8 11:14 | 只看该作者
讲解的很详细,谢谢分享!
回复

使用道具 举报

地板
ID:328112 发表于 2018-5-12 11:02 | 只看该作者
感谢,先收藏.
回复

使用道具 举报

5#
ID:451413 发表于 2019-1-1 14:59 | 只看该作者
讲解的很详细,谢谢分享!!!!
回复

使用道具 举报

6#
ID:215834 发表于 2019-7-4 10:53 | 只看该作者
你好,这个进了中断以后没有中断处理函数锕
回复

使用道具 举报

7#
ID:33899 发表于 2019-8-5 14:25 | 只看该作者
最近学习SMT8,学习这个定时器模块
回复

使用道具 举报

8#
ID:595719 发表于 2019-8-5 17:46 | 只看该作者
感谢,先收藏.
回复

使用道具 举报

9#
ID:609292 发表于 2019-9-9 00:07 | 只看该作者
不错不错
回复

使用道具 举报

10#
ID:523970 发表于 2019-9-10 13:36 | 只看该作者
定时器控制PWM输出非常好用
回复

使用道具 举报

11#
ID:469271 发表于 2019-11-18 02:26 | 只看该作者
感谢,直接下载学习
回复

使用道具 举报

12#
ID:388929 发表于 2020-2-13 15:41 | 只看该作者
请问下有没有人买过这个开发板的???
回复

使用道具 举报

13#
ID:55115 发表于 2020-4-15 13:10 | 只看该作者
刚刚有使用STM8 TIM功能
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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