0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小编科普如何使用SWM系列产品的TIMER功能?

0xQC_gh_ed4f95b 来源:华芯微特32位MCU 作者:华芯微特32位MCU 2021-06-26 09:01 次阅读

引言

华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的TIMER功能。

TIMER精准延时

一、TIMER简介

TIMER是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。

华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的TIMER功能。

SWM190系列有4路32位加强定时器,4路24位基础定时器。加强型定时器支持支持定时器、计数器、捕获、脉冲发送、HALL功能及ADC触发功能等功能。基础定时器具备定时器功能,并具备一个8位分频器,每个定时器具备独立中断源。

二、TIMER定时器之精准延时功能

我们今天详细讲解一下TIMER的定时器功能。

定时器功能使用片内时钟作为计数基准,以SWM190加强型定时器为例,有4个32 bit向下计数的TIMER,脉冲每一次下降沿,计数寄存器数值将减1。

每一个TIMER都可以配置定时器溢出中断。使能溢出中断,定时器溢出会触发中断操作,达到精准定时功能。

三、SWM190 TIMER延时功能配置库函数

下面我们以最简单的定时器为例,使用加强型定时器和基础定时器,用定时器的方法实现1S的精准延时。在此例程中,我们将A4设为每2秒翻转一次IO,A5设为每0.5秒翻转一次IO,通过翻转LED的状态来观察现象。

我们之前有讲到GPIO的配置方法,在这里就不在做赘述,将LED输出引脚通过GPIO_Init设置为输出,与外部LED引脚相连。

在SWM190固件库中对TIMER的配置进行了说明,下面将根据库函数对SWM190的TIMER配置,首先来看一下TIMR_Init函数的原型void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t prediv, uint32_t period, uint32_t int_en)。这个函数的实现是在SWM190_timr.c文件中,若要使用该函数在相应的应用程序的前面包含SWM190_ timr.h头文件。

函数的第一个参数为TIMR_TypeDe,它是一个结构体类型,该类型在SWM190.h中被定义。具体参数为指定TIMER模块,有效值包括TIMR0,TIMR1,TIMR2,TIMR3,BTIMR0,BTIMR1,BTIMR2,BTIMR3;

第二个参数为uint32_t mode,为TIMER模式配置,有效值包括TIMR_MODE_TIMER(定时器)、TIMR_MODE_COUNTER(计数器上升沿)、TIMR_MODE_OC(输出比较)、TIMR_MODE_IC(输入捕获);其中基础定时器只支持TIMR_MODE_TIMER(定时器);

第三个参数为uint32_t prediv,为TIMER分频配置,其中加强型定时器无分频只能为1;基本定时器可取值1-256;

第四个参数为uint32_t period,为计数周期,其中加强型定时器为32bit,基础定时器为24bit。

第五个参数为uint32_t int_en,为中断使能。

我们加强型定时器实现0.1S触发一次,2S实现LED灯的翻转;基础定时器实现0.5S实现LED灯的翻转。

具体配置函数如下图所示:

f7ba12ae-d60f-11eb-9e57-12bb97331649.png

接下来我们看下中断服务子函数,在加强型定时器的中断服务函数中,实现每0.1S进一次中断。定义一个全局变量TimerNum,每当进一次中断的时候,让TimerNum来记录进入中断的次数。我们实现2S的定时,我们只需要判断TimerNum是否等于20,然后把TimerNum清0,执行对应的操作并重新计数,以此循环往复。

f7ebc9e8-d60f-11eb-9e57-12bb97331649.png

在基础定时器的中断服务函数中,实现每0.5S进行LED灯的一次翻转。

f7f936dc-d60f-11eb-9e57-12bb97331649.png

四、实验现象

下载好程序后,LED实现分别2S翻转一次和0.5s翻转一次。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3248

    浏览量

    114775
  • Timer
    +关注

    关注

    1

    文章

    64

    浏览量

    12786

原文标题:华芯微特|MCU之TIMER精准延时

文章出处:【微信号:gh_ed4f95bde4df,微信公众号:华芯微特32位MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    54600系列产品说明

    54600系列产品说明
    发表于 01-21 08:44

    客户为什么会选择3700系列产品

    客户为什么会选择3700系列产品?3700系列产品有什么优点?
    发表于 05-07 06:33

    科普:图文讲解OFDM的原理

    科普:图文讲解OFDM的原理
    发表于 05-19 06:30

    科普几种特殊的晶体振荡器

    科普几种特殊的晶体振荡器
    发表于 06-07 06:29

    RX系列产品分别分为哪几种?RX系列产品具备哪些功能

    RX系列产品分别分为哪几种?RX系列微控制器有哪些性能?RX系列产品具备哪些功能
    发表于 07-01 10:57

    科普一下RK3399 Audio的功能有哪些呢

    科普一下RK3399 Audio的功能有哪些呢?
    发表于 03-04 12:47

    科普一下RK3328 SoC有何功能

    科普一下RK3328 SoC有何功能呢?
    发表于 03-09 07:28

    ASDX系列产品手册

    ASDX系列产品手册。
    发表于 04-28 11:45 10次下载

    MSP430铁电系列超值型微控制器系列产品的PWM介绍

    本课程介绍了MSP430铁电系列超值型微控制器系列产品,该超值系列仅需25美分即可实现25种外设功能。本课程详细介绍了该系列产品的PWM,
    的头像 发表于 05-29 09:32 1688次阅读
    MSP430铁电<b class='flag-5'>系列</b>超值型微控制器<b class='flag-5'>系列产品</b>的PWM介绍

    MCU之TIMER输入捕获

    华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小
    发表于 02-08 15:42 2次下载
    MCU之<b class='flag-5'>TIMER</b>输入捕获

    CKS32F4xx系列产品Timer的基本使用方法-定时器脉冲计数

    CKS32F4xx系列产品Timer的基本使用方法-定时器脉冲计数
    的头像 发表于 11-09 17:38 1074次阅读
    CKS32F4xx<b class='flag-5'>系列产品</b><b class='flag-5'>Timer</b>的基本使用方法-定时器脉冲计数

    CKS32F4xx系列产品Timer的基本使用方法-比较输出

    CKS32F4xx系列产品Timer的基本使用方法-比较输出
    的头像 发表于 11-09 17:39 858次阅读
    CKS32F4xx<b class='flag-5'>系列产品</b><b class='flag-5'>Timer</b>的基本使用方法-比较输出

    CKS32F4xx系列产品Timer的基本使用方法-定时操作

    CKS32F4xx系列产品Timer的基本使用方法-定时操作
    的头像 发表于 11-09 17:41 620次阅读
    CKS32F4xx<b class='flag-5'>系列产品</b><b class='flag-5'>Timer</b>的基本使用方法-定时操作

    SWM341系列SWM34SRET6介绍

    SWM341系列SWM34SRET6介绍
    的头像 发表于 10-27 10:19 2173次阅读
    <b class='flag-5'>SWM</b>341<b class='flag-5'>系列</b>之<b class='flag-5'>SWM</b>34SRET6介绍

    如何配置SWM系列系统时钟?

    如何配置SWM系列系统时钟?
    的头像 发表于 09-18 16:35 782次阅读
    如何配置<b class='flag-5'>SWM</b><b class='flag-5'>系列</b>系统时钟?