玩转TM4C1294XL(3)——Timer定时器

1.简介
       简单介绍芯片内部的通用定时器,使用通用定时器进行一个周期性定时中断,中断中让灯闪烁。本人是边学习边记录,内容仅作参考,有错误的地方请见谅。
2.定时器介绍
       本部分内容参考自TI官方手册,任何芯片最权威的资料都是官方手册。像TI、ST、NXP等这些大厂的手册资料和例程都是非常完善的,使用这些资料进行参考开发就完全够用了。
       芯片内部的通用定时器功能非常的多,先来简单的看一下手册里面的介绍。
在这里插入图片描述

图1 手册中timer的介绍

       定时器可以作为普通的定时器,可以作为一个RTC,可以触发uDMA,可以触发ADC,可以输出PWM信号,可以输入捕获计数等。这边先来介绍一下定时器的最基本功能,定时功能。其他的功能像触发ADC的功能后面介绍ADC的时候再进行介绍。由于这个芯片有独立的RTC外设和PWM外设,因此我不会将Timer用在这些模式,也不会去介绍。
       芯片内部有8个定时器,有16bit/32bit两种模式,16bit模式时一个定时器会分裂成两个独立的16bit定时器,这样最多就有16个16bit的定时器可以使用,当16bit的定时器使用时可以有个8bit的分频系数可以进行设置,根据设置的分频系数和定时值来确定定时时间。当作32bit定时器时就没有分频系数的设置了,当然32bit的定时器也不需要用到分频系数这个设置,32bit的定时值对于120M的主频来说本身就能定时很长的时间了。不管是16bit还是32bit的定时器都可以设置定时模式为单次模式还是周期模式,计数方式是向下计数还是向上计数。

3.定时器初始化配置
       配置实现一个32bit的周期性定时器,开启定时器中断。

void bsp_InitTimer(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1); //使能定时器时钟
    TimerConfigure(TIMER1_BASE,  TIMER_CFG_PERIODIC | TIMER_CFG_A_PERIODIC); //32bit 周期定时器
    TimerLoadSet(TIMER1_BASE, TIMER_A, SystemCoreClock); //设置重装载值为系统时钟,定时时间1s。

    IntMasterEnable(); //Enable processor interrupts.

    TimerIntEnable(TIMER1_BASE, TIMER_TIMA_TIMEOUT); //使能TIMER1_A超时中断

    IntEnable(INT_TIMER1A);

    TimerEnable(TIMER1_BASE, TIMER_A); //Enable Timer1A.
}

//TIMER1A 中断函数
void TIMER1A_Handler(void)
{
    TimerIntClear(TIMER1_BASE, TIMER_TIMA_TIMEOUT);
    Led3_Toggle();
}

       代码中都有相应的注释比较好理解,简单的分析一下。TimerConfigure函数来配置定时器,通过后面的参数组合来配置定时器,比如想要将定时器分裂成两个16bit定时器时增加一个参数TIMER_CFG_SPLIT_PAIR即可。定时器工作在32bit模式时,只能使用TimerA,相应的中断函数也需要使用TimerA的。定时器的默认时钟源就是系统时钟,所以这边设置重装值为系统时钟频率值就是定时1s。

定时器配置Keil工程下载

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
TM4C1294芯片具有8个定时器,可用于实现定时功能。定时器可以作为普通的定时器,也可以作为RTC、触发uDMA、触发ADC、输出PWM信号、输入捕获计数等。定时器工作在16位或32位模式下,其中16位模式下可以将一个定时器分裂成两个独立的16位定时器,最多可使用16个16位定时器定时器的定时时间可以通过设置重装值和分频系数来确定,32位定时器不需要设置分频系数。定时器可以设置为单次模式或周期模式,并可选择向上计数或向下计数的计数方式。 在TM4C1294芯片中,配置定时器的步骤如下: 1. 使能定时器时钟。 2. 配置定时器为32位周期性定时器。 3. 设置定时器的重装值为系统时钟频率值,以实现定时1s。 4. 使能定时器中断。 5. 启用处理器中断。 6. 启用定时器。 7. 实现TIMER1A中断函数,其中清除定时器中断标志位并执行相应的操作。 通过以上步骤,可以成功配置和使用TM4C1294芯片的定时器功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [玩转TM4C1294XL(3)——Timer定时器](https://blog.csdn.net/weixin_43980908/article/details/123459403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落叶凋凌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值