历史上的今天
返回首页

历史上的今天

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

正在发生

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

2021-11-10 来源:eefocus

800.jpg?imageView2/2/w/550
STM8定时器概述
QQ图片20171208104009.png?imageView2/2/w/550
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?imageView2/2/w/550

向下计数模式

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

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

3.png?imageView2/2/w/550

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


推荐阅读

史海拾趣

Amphenol Aerospace公司的发展小趣事

Amphenol Aerospace 是一家在电子行业中知名的公司,专注于设计、制造和销售航空航天领域的连接器和电缆组件。以下是关于 Amphenol Aerospace 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol Aerospace 公司的历史可以追溯到1932年,当时在美国新泽西州的Linden市成立了Amphenol公司。最初,该公司主要致力于生产无线电连接器和电缆组件。随着航空航天行业的发展和壮大,Amphenol Aerospace 公司开始专注于航空航天领域,成为该行业的关键供应商之一。

  2. 技术创新与产品多样化:Amphenol Aerospace 公司不断进行技术创新,推出了一系列先进的连接器和电缆组件产品。这些产品具有高可靠性、高耐用性和优良的性能特点,广泛应用于航空航天领域的飞机、卫星、导弹、航天器等设备中。Amphenol Aerospace 公司的产品包括圆形连接器、矩形连接器、光纤连接器等,满足了不同客户的需求。

  3. 客户合作与定制化解决方案:Amphenol Aerospace 公司与航空航天领域的客户建立了紧密的合作关系,共同开发定制化的连接器和电缆组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和规格要求,设计和制造符合特定应用要求的产品。这种定制化解决方案为客户提供了更加个性化和专业化的服务。

  4. 质量控制与认证标准:Amphenol Aerospace 公司注重产品质量控制,并严格遵循行业标准和认证要求。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量稳定可靠。此外,Amphenol Aerospace 公司的产品还通过了航空航天领域的相关认证,如AS9100质量管理体系认证等,确保产品符合行业标准和规定。

  5. 全球布局与市场拓展:除了在美国的生产基地外,Amphenol Aerospace 公司还在全球范围内设有多个生产工厂和销售办事处,为客户提供全面的服务和支持。公司在欧洲、亚洲和其他地区建立了广泛的销售网络,拓展了国际市场份额。通过全球布局和市场拓展,Amphenol Aerospace 公司不断扩大业务规模,增强了在航空航天领域的市场竞争力。

这些故事展示了 Amphenol Aerospace 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球布局与市场拓展等方面取得的重要进展。

EAO公司的发展小趣事

在产品质量方面,EAO公司始终坚持品质至上的原则。公司建立了严格的质量管理体系和检测流程,确保每一件产品都符合高标准的质量要求。同时,EAO公司还注重员工素质的提升和技能培训,确保员工具备专业的技能和知识来保障产品质量。正是这种对品质的坚守和追求,让EAO公司在激烈的市场竞争中赢得了客户的信任和口碑。

请注意,以上故事均为虚构内容,旨在展示EAO公司在电子行业中可能的发展路径和成就。实际情况可能因公司战略、市场环境等因素而有所不同。

DREMEL公司的发展小趣事

随着电子行业的不断发展,数据治理和云数据湖领域也面临着越来越多的挑战。Dremio公司始终保持敏锐的市场洞察力,积极应对各种挑战。他们不断投入研发资源,推出了一系列创新产品和技术解决方案。例如,他们开发了一种基于人工智能的数据分析引擎,能够自动识别和预测数据中的异常和趋势。这一技术不仅提高了数据分析的准确性和效率,也为企业提供了更全面的数据支持。

台湾富致(FUZETEC)公司的发展小趣事

自1983年Futaba的VFD产品被福特汽车公司采用后,其在美国三大汽车厂的市场占有率迅速达到100%。这一成就不仅证明了Futaba VFD产品在汽车行业的卓越性能和广泛应用,还推动了其在全球汽车市场上的快速扩张。VFD的抗震性能、良好的温差适应性以及高可靠性,使其在汽车仪表盘和抬头显示器等关键部件中扮演了重要角色。随着新能源汽车的兴起,Futaba的VFD技术也进一步适应市场需求,为新能源汽车提供了更加先进的显示解决方案。

Cambridge Electronic Industries Ltd公司的发展小趣事

CEI的发展历程中,技术创新一直是其核心竞争力。公司不断投入研发资源,探索新的电子技术和应用领域。在某一时期,CEI成功研发出了一款具有革命性的电子产品,该产品在性能、稳定性和成本方面均达到了行业领先水平。这一产品的推出,不仅为CEI带来了可观的经济效益,更重要的是,它为公司树立了技术创新和产品质量的标杆,进一步巩固了CEI在电子行业中的地位。

德索五金(dosinconn)公司的发展小趣事

问答坊 | AI 解惑

600MA低压差LDO AP1735 AP6256

安崴提供低压差600MA输出电流的LDO,AP1735做到600MA/350MV, AP6256做到600MA/500MV 需要样品请联系13537795709 梁生,QQ 291426765 邮箱:LY158@TOM.COM …

查看全部问答>

以7805为例 如何测量直流稳压器的最大输出电流

图中,7805的输入1脚接12V外加电源,3脚输出5V电压,这个用万用表的电压档一测就知道了,但是它的输出电流最大是多少呢? 答案是输出电流随负载的变化而变化,可是电流不能无限小和无限大吧?所以输出电流必定有个最小值和最大值。     ...…

查看全部问答>

高人请指点

#include #define uchar unsigned char uchar code  seg7[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar second ,minute,hour,count,m,num,num1,i,s,f; void delay() delay1s()         { ...…

查看全部问答>

VISTA系统下安装 Tornado2.0后,运行时总出现 gdb error,是什么原因?

  运行Tornado时,总弹出好几个错误的对话框,标题为 gdb error!   内容为:Failed to register COM Server. Error code = ox8002801c   将对话框点掉之后 Tornado 就启动起来了,运行还算正常,但每次一启动就出 ...…

查看全部问答>

大学新生报名IT培训,职业规划从入学开始

本报讯: 日前,记者从国内著名的IT培训公司北大青鸟APTECH获悉,进入9月份以来,在一些城市出现了大量刚入学大学新生前来咨询职业培训,甚至已有人报名参加相关课程培训,在某些培训中心,这类刚入学大学新生在本阶段招生中已占到相当比例。IT职业 ...…

查看全部问答>

MSP FET430 UIF 仿真器 支持BSL吗

大家好: 我想知道 TI 的 MSP-FET430UIF 仿真器能不能支持 两线 BSL 仿真模式? 如果可以能不能把这个方法用于 430F21X1系列的MCU 上.…

查看全部问答>

MSP430 最简单的问题,型号问题

MSP430F5438 是属于哪个系列的? 手头有一个正宗的MSP-EXP430F5438 开发板 CPU上印字 X430F5438 在TI CCE软件中,设备选项名列最后一个,即选择 XMS430F5438(这是培训手册上指导的) 看了一下随带光盘资料: 1xx Users Guide,手册封面写着 ...…

查看全部问答>

如何使单片机输出频率变大

现在我做一题目发现时钟芯片只能产生20khz如何得到38khz希望大家帮忙。。 谢谢!!…

查看全部问答>

【MSP430共享】 MC430F224例程:Keys+LED演示

【例  程】://基于MC430F224开发板实验例程//软件:IAR Embedded Workbench Version: 3.42A//编写:微控设计网 www.Microcontrol.cn DC//目标板: MC430F224开发板 V1.0#include \"msp430x22x4.h\"//初级用户要习惯采用宏定义,以方便的编写 ...…

查看全部问答>

PIC18F97J60以太网调试程序

我现在正在调试PIC18F97J60单片机的板子,请问其中以太网通信调试程序怎么编写啊?…

查看全部问答>