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

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

3天内不再提示

MSPM0L1306开发板教程之通用定时器

创易栈 来源:创易栈 作者:创易栈 2023-06-30 15:50 次阅读

MSPM0L系列的通用定时器(TIMG)是一个16位的自动重装定时器,支持向下和上下计数两种模式,同时带有两个比较捕获单元,可以做到输出比较,输入捕获,PWM输出,单脉冲输出等功能。

定时器还支持正交编码器结果(QEI),多定时器间的交叉触发和同步,以及触发其他外设,例如ADCDAC等,下图是各个TIMG的配置。

3c084a78-171a-11ee-962d-dac502259ad0.png

TIMG可以选择BUSCLK,MFCLK,LFCLK作为时钟源,可以最大8分频时钟,再经过一个8位的预分频器,最终称为定时器的计数时钟。

3c5ae17a-171a-11ee-962d-dac502259ad0.png

实操例程1

下面通过SYSCONFIG来配置一个1s的定时器,用来翻转IO,在SYSCONFIG的定时器外设选项卡中,定时器不同的功能已经分开配置了,根据需要选择不同的选项卡,我们是纯定时,所以就在最下面的一个。

3c72fe86-171a-11ee-962d-dac502259ad0.png

在配置界面中,时钟选择32MHz的总线时钟,分频系数为8,预分频为64,最终定时器时钟也就是62.5KHz,填入我们需要的定时周期1000ms,系统会自己算出寄存器的装载值。

3c8c1b0a-171a-11ee-962d-dac502259ad0.png

因为这个配置中,系统使用的是向下计数模式,所以中断部分选择计数到0事件

3ccb86d2-171a-11ee-962d-dac502259ad0.png

GPIO的配置方法已经在前面的教程里说过了,这里就不在重复。

在程序初始化后,使能定时器中断,开启定时器就可以了,在中断函数中翻转IO口,就可以完成1s钟翻转IO的程序了

3cdecdc8-171a-11ee-962d-dac502259ad0.png

配套例程名为TIM_toggleIO,需要复制到SDK目录下运行。

实操例程2

下面配置一个PWM输出的例子。

PWM输出是使用的是定时器的比较功能,MSPMPL系列每个定时器可以输出2个通道的同周期不同占空比的PWM。

有两种PWM模式,一个是边缘对齐PWM,其实就是定时器使用的向下计数模式,输出通道在定时器计数开始的时候会输出高电平,当计数值与输出通道的比较值相同的时候,输出通道会输出低电平一直到定时器的计数值计数到0,就完成了一个周期的脉冲输出。

3cfb6dc0-171a-11ee-962d-dac502259ad0.png

另外一个数中心对齐PWM,也就是定时器的上下计数模式,输出通道会在定时器开始的时候输出低电平,在定时器向上计数和向下计数两次到达输出通道的比较值相等的时候各翻转一次电平。

3d5a2428-171a-11ee-962d-dac502259ad0.png

输出通道初始电平在定时器未开始计数的时候可以在OCTL_xx寄存器中修改,比较输出通道的电平也可以在此寄存器中修改成翻转输出。

这里设置两个100Hz,50%占空比的PWM,其中一个通道为翻转输出。

在SYSCONFIG的TIMER-PWM选项卡中,设置好对应的时钟和分频,以及PWM周期计数值,系统会自动计算出PWM频率。

3d7cad54-171a-11ee-962d-dac502259ad0.png

在PWM设置里面,选择PWM模式,这里选的是边缘对齐,选择双通道输出,每个填入通道的期望占空比,系统会自己计算出计数值以及实际占空比,通道初始状态也可以在这里设置,这里默认不动,我们把0通设置为翻转输出。

3d9a278a-171a-11ee-962d-dac502259ad0.png

最后在PinMux配置好具体的输出管脚。

3db2919e-171a-11ee-962d-dac502259ad0.png

在程序里开启定时器就可以输出PWM了。

3dc14fc2-171a-11ee-962d-dac502259ad0.png

示波器抓一下,可以看到对应管脚已经产生了配置所需的PWM。

3de4a3a0-171a-11ee-962d-dac502259ad0.png

配套例程名为TIM_PWM,需要复制到SDK目录下运行。

审核编辑:汤梓红

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

    关注

    114

    文章

    4901

    浏览量

    209930
  • adc
    adc
    +关注

    关注

    95

    文章

    5652

    浏览量

    539489
  • dac
    dac
    +关注

    关注

    43

    文章

    1973

    浏览量

    189524
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112045
  • 开发板
    +关注

    关注

    25

    文章

    4434

    浏览量

    94032

原文标题:MSPM0L1306开发板教程9 - 通用定时器

文章出处:【微信号:创易栈,微信公众号:创易栈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MSPM0L1306开发板程之OPA

    MSPM0L系列的OPA是一个轨到轨输入输出的可编程运算放大器,最大为32x,可以软件配置为零漂移斩波放大器以提高精度和漂移性能,有专门优化的输入管脚的型号可以达到10pA的输入偏置电流,标准模式为6MHz带宽,低功耗模式下带宽为1MHz,电流100uA。
    发表于 07-15 09:58 553次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>OPA

    如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设,捕获超声波模块的距离信号。本系列教程所编写的驱动源码:好用的话,记得点个Star呀!1. 准备工作硬件
    发表于 08-10 06:58

    如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设,以中断的方式使LED闪烁。1. 准备工作硬件准备开发板首先需要准备一个
    发表于 08-13 07:23

    使用通用定时器进行中断的原理

    stm32入门——定时器中断产生定时中断是定时器的用法之一,与定时器用来进行PWM输出和输入捕获相比,定时器中断更容易理解、掌握。原理简介使
    发表于 08-13 09:00

    如何利用STM32L475开发板去处理定时器捕获模块应用程序

    我想在捕获模块上进行测试,以找出实际应用中定时器引脚处到达脉冲的脉冲宽度。所以,在这里我想要一个 STM32L475 的开发板来处理这个应用程序,比如从一个定时器 PWM 生成脉冲并循
    发表于 12-23 09:08

    STM32开发板程之定时器中断实验的资料概述

    STM32 定时器功能十分强大,它一共有三种定时器。高级定时器(TIME1 和TIME8),通用定时器(TIME2-TIME5),基本
    发表于 11-15 10:04 17次下载
    STM32<b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b><b class='flag-5'>定时器</b>中断实验的资料概述

    MSPM0L1306开发板程之开发环境搭建

    TI的MSPM0L系列的开发,可以使用KEIL,IAR,CCS等开发环境。仿真器可以使用ARM开发常用的JLINK,以及TI的XDS仿真器。
    的头像 发表于 04-23 10:11 5329次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b><b class='flag-5'>开发</b>环境搭建

    MSPM0L1306开发板程之GPIO输入输出

    GPIO算是所有MCU入门的第一步,今天的教程就来教大家设置MSPM0L系列的GPIO的输入输出功能。
    的头像 发表于 05-04 17:22 3046次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>GPIO输入输出

    MSPM0L1306开发板程之运行模式

    今天的教程讲下MSPM0L系列的运行模式。
    的头像 发表于 05-29 11:21 1502次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>运行模式

    MSPM0L1306开发板程之DMA

    DMA使用是一个不需要CPU干预,自己搬运数据的模块,在前面讲中断事件的章节里面,就有提到过事件的DMA通道,DMA事件路由(DMA Event Route)。
    的头像 发表于 06-09 18:21 1510次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>DMA

    MSPM0L1306开发板程之ADC

    MSPM0L系列的ADC是一个12bit的SAR ADC,采样频率最高1.45MHz,最高可做到11.2位的实际有效位(ENOB)。
    的头像 发表于 06-10 10:16 1746次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>ADC

    MSPM0L1306开发板程之I2C

    MSPM0L系列的I2C支持主从模式,有7位地址位可以设置,速率最大1Mbps,无论是主机或者从机,发送和接收都有独立的8个字节FIFO。
    的头像 发表于 06-30 15:50 1815次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>I2C

    MSPM0L1306开发板教程-SPI

    MSPM0L系列的SPI控制器最大频率是16MHz,支持3线和4线的模式,带有4个片选(CS),其中CS3支持命令模式(Command Mode)。
    的头像 发表于 07-08 10:56 1112次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程-SPI

    MSPM0L1306开发板程之COMP

    MSPM0L带有模拟比较器功能,可以用于模拟信号的比较,用于中断MCU或者触发MCU其他外设。
    的头像 发表于 07-15 09:56 850次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>COMP

    MSPM0L1306开发板程之WWDT

    窗口看门狗WWDT,MSPM0L系列的看门狗的时钟使用的是32KHz的LFCLK,计数器有25位,寄存器可以有8个可选的计数周期,加上时钟的最大8分频,也就是有64档计数周期可选,从1.95ms到8190s,有两个阈值,关闭窗口(closed window)和打开窗口(open window)。
    的头像 发表于 07-15 10:01 692次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>WWDT