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);
}
单片机源程序如下:
/***********************************************************************
* 说 明: STM8定时器
* 开发平台: 剑齿虎STM8开发板
* 作 者: 刘洋 张殿东
* 版 本: V1.0
*
* IAR开发环境 版本 V2.20.1
* ST库函数 版本 V2.2.0
***********************************************************************/
#include "pbdata.h"//引入自定义公共头文件
void BSP_Configuration(void);//硬件初始化函数声明
/***********************************************************************
* 函 数 名: main
* 功能说明: c程序入口
* 形 参:无
* 返 回 值: 错误代码(无需处理)
***********************************************************************/
int main(void)
{
BSP_Configuration();//硬件驱动初始化函数
while(1)//主程序循环,反复执行循环体里的语句
{
//LED_Demo1();//在主程序中调用LED_Demo1()函数
//LED_Demo2();//在主程序中调用LED_Demo2()函数
}
}
/***********************************************************************
* 函 数 名: BSP_Configuration
* 功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。
* 形 参:无
* 返 回 值: 无
***********************************************************************/
void BSP_Configuration(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//时钟速度为内部16M,1分频,
LED_Init();//调用LED初始化函数
Tim1_Init();
rim();//打开总中断
}
/*断言函数:它的作用是在编程的过程中为程序提供参数检查*/
#ifdef USE_FULL_ASSERT
void assert_failed(u8* file,u32 line)
{
while(1)
{
}
}
#endif
上一篇:解决STM8定时器首次进入中断时间不对
下一篇:STM8S003定时器1中断服务程序(PWM)中开启定时器2定时计数
推荐阅读
史海拾趣
Delta公司自1971年成立以来,始终专注于电源管理领域。最初,公司主要生产开关式电源供应器,但随着技术的不断进步和市场的不断扩大,Delta逐渐将产品线扩展到散热管理解决方案、零组件等多个领域。凭借其高效、可靠的产品,Delta在全球电源管理市场上树立了良好的口碑,并逐步成为该领域的领军企业。
随着人们生活水平的提高和环保意识的增强,Delta公司提出了“智能绿生活”战略,致力于为个人、家庭和企业带来更环保健康的生活型态。在这一战略指导下,Delta推出了一系列视讯显像系统、网络通信系统、LED照明、智能语音系统及云计算等产品。这些产品不仅具有高效、节能的特点,还为用户提供了更加便捷、智能的生活体验。
Delta公司始终将技术创新作为推动企业发展的核心动力。公司不断投入巨资进行技术研发和创新,积极引进先进技术和设备,培养高素质的研发人才。这些努力使Delta在电源管理、能源管理、智能绿生活等领域取得了多项技术突破和专利成果,不仅提升了公司的核心竞争力,还引领了整个行业的发展方向。
为了进一步提升公司的国际影响力,CETC开始积极布局海外市场。公司先后在美国、欧洲等地设立了研发中心和分支机构,与当地企业开展深度合作,共同研发适应市场需求的产品。同时,CETC还积极参加国际电子展会和论坛,展示公司的最新技术和产品,吸引了众多国际客户的关注。通过这些努力,CETC成功打开了海外市场的大门,为公司的长远发展注入了新的动力。
随着市场竞争的加剧和资金问题的持续困扰,菲斯克在某一时期不得不宣布停产六周。这一决定引发了外界的广泛关注和质疑。然而,菲斯克并没有因此放弃,而是利用这段时间进行了深入的内部反思和策略调整。通过优化生产流程、降低成本以及加强与其他汽车制造商的合作,公司逐渐走出了困境,重新焕发出新的生机。
2020年,美国RF解决方案的领先供应商Qorvo宣布收购Decawave。这一收购对于Decawave来说是一个重要的里程碑。Qorvo看中了Decawave在UWB技术领域的创新能力和市场潜力,通过收购整合,Qorvo能够更好地将Decawave的技术应用于其移动、汽车、消费类和工业物联网市场的产品中。同时,Decawave也借助Qorvo的全球资源和市场渠道,进一步扩大了其市场份额和影响力。
一、CAN和CANopen简介 CAN总线全称为Controller Area Network即控制器局域网是国际上应用最广泛的现场总线之一,已经在汽车制造、机械制造、包装机械、烟草等行业得到了广泛的应用。CAN总线是德国 BOSCH公司从80年代初为解决现代汽车中众多的 ...… 查看全部问答∨ |
|
几个月前用过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. ...… 查看全部问答∨ |
|
在WinCE下可以用DirectShow播放MPEG4视频文件 的问题??求教!!! 各位高手:求教! 我在EVC中利用DirectShow开发出的播放器,播放WMV格式的文件时,只有声音,没有视频!在WINCE的OS 设计中,改加的feature 也都有加了!不知为什么?还请各位高手赐教?… 查看全部问答∨ |
|