MSPM0开发学习笔记:外设Timer

MSPM0开发学习笔记

第一章 初步安装与配置
第二章 外设GPIO
第三章 外设Timer



一、Timer原理介绍

定时器的工作原理可归纳为以下几个核心机制

1、时钟源与分频​

定时器基于稳定的时钟信号工作,时钟源可以是内部振荡器(如系统时钟)或外部输入信号。时钟信号通过分频器调整频率,分频值决定了计数器的实际工作频率。例如,32MHz时钟经256分频后变为125kHz(周期8μs)

2、​计数器模式​

​向上计数​:从0递增至预设值(如65535),溢出后触发中断并重置
​向下计数​:从预设值递减至0,触发中断后可自动重载初始值(自动重装载寄存器功能)实现周期性计时
​中央对齐模式​:交替进行递增和递减计数,适用于生成对称PWM波形

3、​中断触发机制​

当计数器达到目标值(溢出或匹配预设值)时,触发中断信号,CPU暂停当前任务执行中断服务程序(如LED翻转)。硬件中断控制器负责管理中断优先级和响应

4、定时精度与范围​

​最短计时时间​:由时钟周期决定。例如,1MHz时钟最短计时1μs
​最长计时时间​:由计数器位数和分频值共同决定。16位计数器在125kHz时钟下最长计时约524ms(65535×8μs)

5、功能扩展​

定时器可通过比较寄存器实现PWM输出(控制占空比)、输入捕获(测量脉冲宽度)等高级功能


二、syscfg配置

这边也需要配置GPIO,不过上一节已经讲过了,所以这边就不在赘述,感兴趣的话大家可以在文章最开始的地方进行跳转查看。

1、TIMER

在这里插入图片描述
我们直接来看TIMER的配置,首先是黄色的部分,因为是入门教学,所以我们暂时只用知道这边我们需要选择BUSCLK就可以了。
然后是黄色的部分,这边是将我们的定时器时间通过外部和内部进行划分 是32000000除以(1~8)再除以256的计算过程
然后会在绿色的框中显示出该TIMER可以调节的范围是多少到多少。
灰色部分的话就是我们的预期时间和实际时间(精度不一定能满足所以有时候不一样)
白色部分如果勾选的话会在程序刚刚开始的时候就开始计时

在这里插入图片描述
这个部分的中断配置 选择Zero event 就是数到0的时候触发中断

设置完之后进行编译即可


三、程序设计

具体代码如下:

#include "ti_msp_dl_config.h"


int main(void)
{
    SYSCFG_DL_init();

    NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);
    DL_TimerG_startCounter(TIMER_0_INST);

    while (1) {
    }
}

void TIMER_0_INST_IRQHandler(void)
{
    switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
        case DL_TIMER_IIDX_ZERO:
            DL_GPIO_togglePins(GPIO_LEDS_PORT,
                GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_TEST_PIN);
            break;
        default:
            break;
    }
}

以上所有参数也是一样可以到Debug/ti_msp_dl_config.h文件里面进行查找
SYSCFG_DL_init()进行初始化
NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);使能中断
DL_TimerG_startCounter(TIMER_0_INST);开始中断
void TIMER_0_INST_IRQHandler(void)是中断服务函数
这边的

switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
        case DL_TIMER_IIDX_ZERO:

的作用是确保是由zero event引起的中断(因为我们刚才那边展开的列表由除了zero event之外的很多中断 如果我们选择多个的话就需要这么做来确保是到0了,这边可用可不用)
进入之后执行
DL_GPIO_togglePins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_TEST_PIN)
进行翻转 实现闪烁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值