CCS-MSPM0G3507-2-基础篇-定时器中断

前言

这一部分我们来讲如何封装定时器中断

配置定时器中断

打开这个界面

1.首先点击这里添加一个定时器

2.然后设置定时器中断的时间

可以看出软件自动把频率 和最大最小定时时间给计算出

如果想要更长的定时时间,那就把分配系数增大

3.设置时间

第一个选择持续计数,要不然执行一次就满了

修改第二个代表自己想定时的时间

第三个是系统计算出的实际定时时间

第四个是使能,要勾选上

4.开启中断

选择0事件,然后中断优先级默认

5.选择定时器

选择个就好

到此我们已经配置好一个100ms的定时器

根据图形化配置的结果,我们自己在.h重新定义

当下程序为1S的LED闪烁

tim.c

cpp 复制代码
#include "tim.h"
#include "led.h"
void TIM1_init(void)
{
    NVIC_ClearPendingIRQ(TIM_NVIC);
    NVIC_EnableIRQ(TIM_NVIC);
}

void tim_handle()
{
    static uint8_t i = 0;
    i++;
    if (i % 10 == 0)
        LED_TOGGLE();
}

void TIMA0_IRQHandler(void)
{
    switch (DL_TimerG_getPendingInterrupt(timn))
    {
    case DL_TIMER_IIDX_ZERO:
        tim_handle();
        break;
    }
}

tim.h

cpp 复制代码
#ifndef TIM_H
#define TIM_H

#include "ti_msp_dl_config.h"

#define TIM_NVIC  TIMA0_INT_IRQn
#define timn      TIMA0
void TIM1_init(void);
void tim_handle();

#endif // TIM_H