历史上的今天

今天是:2024年11月10日(星期日)

正在发生

2021年11月10日 | STM8定时器TIM1-TIM6使用详解与实验程序

发布者:温柔心情 来源: eefocus关键字:STM8  定时器  TIM1  TIM6 手机看文章 扫描二维码
随时随地手机看文章

800.jpg
STM8定时器概述
QQ图片20171208104009.png
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)。


1.png

向下计数模式

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

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

3.png

定时器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


关键字:STM8  定时器  TIM1  TIM6 引用地址:STM8定时器TIM1-TIM6使用详解与实验程序

上一篇:解决STM8定时器首次进入中断时间不对
下一篇:STM8S003定时器1中断服务程序(PWM)中开启定时器2定时计数

推荐阅读

        在摩托车世界里,Husqvarna可能是一个大家耳熟能详的名字,但是它在拥抱电动摩托车方面一直无所作为。不过这种情况很快就会有所改变——该公司计划推出首款电动摩托EE5。Husqvarna电动摩托EE5  这款车型最终是一款迷你越野车,配有气质剽悍的越野轮胎,坚固耐用的前叉和外露的发动机。当然,不同之处在于它的动力选择——它使用的是5kW...
(文章来源:中科罗伯特机器人学院) 工业机器人技术的研究是大量学科相互交融促进并快速发展的过程,通过人机协作、人工智能和仿生结构等多种技术的创新,才铸就了现在我们所看到的工业机器人。但工业机器人的技术从未停止发展的步伐,它正快速拓展到人类生活的每一个地方,这不仅是对人类,也是对机器人来说这都是一个全新的挑战。机器人的发展为我们...
专注于引入新品的全球电子元器件授权分销商贸泽电子 (Mouser Electronics) 宣布与HEICO旗下知名大功率模拟元器件制造商Apex Microtechnology公司签署了全球分销协议。签署此项协议后,贸泽开始分销各种Apex放大器和参考元器件。 Apex Microtechnology功率运算(线性)放大器专为需要大电流和高电压的应用而设计。这些放大器产品具有高可靠性并提供多种...
前几天,高通正式宣布将会在11月30日召开骁龙技术峰会,大家期待的骁龙898芯片也有望正式亮相。  按照以往惯例,高通官方可能会在发布会上介绍首发该芯片的厂商,其很大概率会由小米12首发,即便没能抢下首发,小米12也应该会在年前发布,是首批骁龙898机型。  根据微博数码博主的最新爆料,小米旗下有一款代号为L2的旗舰手机,今天正式通过...

史海拾趣

问答坊 | AI 解惑

CAN和CANopen相关技术

一、CAN和CANopen简介   CAN总线全称为Controller Area Network即控制器局域网是国际上应用最广泛的现场总线之一,已经在汽车制造、机械制造、包装机械、烟草等行业得到了广泛的应用。CAN总线是德国 BOSCH公司从80年代初为解决现代汽车中众多的 ...…

查看全部问答∨

如何 扎扎实实 学习 模拟电路

http://blog.ednchina.com/freeeedoooom/183513/message.aspx…

查看全部问答∨

Platform Builder 5,问个极端弱智的问题

几个月前用过pb 5.0,现在又捡起来了,结果发现Workspace->FileView下的内容好像变了。根目录下主要有三项,PLATFORM、PRIVATE和public。其中Private和public下主要是通用Wince 5.0的内容,而PLATFORM里应该是与板子有关的BSP的内容吧。现在的情 ...…

查看全部问答∨

硬件工程师进来帮帮小弟

小弟刚刚毕业,来到深圳找工作,想找硬件方面工作,但是由于大学没好好读,找不到好点的工作。 请问大虾,深圳什么地方有培训硬件的机构,比如培训画电路图啊,焊电路板之类的。 还有深圳做硬件的公司哪些比较适合的,比如画手机电路什么的,我对 ...…

查看全部问答∨

电力行业企业高薪招聘嵌入式开发人员!!

    欢迎满足以下条件之一的有识之士与我们联系,公司网址:     www.nerc.com.cn,发送简历邮箱地址:whl668@epri.ac.cn。     1.具有2年以上电力行业嵌入式产品开发经验。         2. ...…

查看全部问答∨

PPPoE拨号上网问题!

我在wince实现PPPoE拨号上网,现在可以拨号成功了,不过就是上不了网,ping也不通,哪位朋友遇到过这种情况,帮帮忙。 谢谢!…

查看全部问答∨

哪位大侠知道Windows CE系统支持OpenGL吗?

Windows CE 5.0 支持OpenGL吗,如果在 WinCE系统下开发图形界面,用什么比较好?…

查看全部问答∨

在WinCE下可以用DirectShow播放MPEG4视频文件 的问题??求教!!!

各位高手:求教! 我在EVC中利用DirectShow开发出的播放器,播放WMV格式的文件时,只有声音,没有视频!在WINCE的OS 设计中,改加的feature 也都有加了!不知为什么?还请各位高手赐教?…

查看全部问答∨

还是搞不懂怎么烧写NORFLASH

                                 我用的是STM3210E-EVAL评估板,想把程序中有一些表,数组放到NOR FLSAH中去,实在不知怎么烧进去,请懂的朋 ...…

查看全部问答∨

网上惊现-----STM32F207芯片!!!

下载 (211.05 KB) 2010-12-15 12:04 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved