前言

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

配置定时器中断

打开这个界面

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

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

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

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

3.设置时间

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

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

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

第四个是使能,要勾选上

4.开启中断

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

5.选择定时器

选择个就好

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

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

当下程序为1S的LED闪烁

tim.c

#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

#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

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐